程序设计基础课大作业1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#define maxsize 1024
typedef char datatype;
typedef struct
{ datatype elements[maxsize];
int top;
}stack;
void setnull(stack *&);
void push(stack*,datatype);
datatype pop(stack*);
//栈初始化
void setnull(stack *&s)
{
s=(stack*)malloc(sizeof(stack));
s->top=-1;
}
//顺序栈入栈
void push(stack*s,datatype e)
{
s->top++;
s->elements[s->top]=e;
}
int main()
{
char cur_char;
char str[maxsize] = "\0";
stack *s;
setnull(s);
push(s,'a');
printf("请输入需要判断的字符串\n");
gets(str);
for(int i=0;i<strlen(str);i++)
{
cur_char = str[i];
switch(cur_char)
{
case'{':
case'[':
case'(':
push(s,cur_char);
break;
case'}':
if(s->elements[s->top] == '{')
{
s->top--;//出栈
break;
}
else
{
printf("NO\n");
return 0;
}
case']':
if(s->elements[s->top]=='[')
{
s->top--;
break;
}
else
{
printf("NO\n");
return 0;
}
case')':
if(s->elements[s->top] == '(')
{
s->top--;
break;
}
else
{
printf("NO\n");
return 0;
}
default:
;
}
}
if(s->elements[s->top]=='a')
printf("OK\n");
}C语言的数据结构每次用都需要定义并写相关函数,太过于麻烦,不如C++的直接封装