帮我填完整这段程序栈的应用――简单的括号匹配

来源:百度知道 编辑:UC知道 时间:2024/07/07 12:25:01
#include<stdio.h>
#define MAX 20
typedef struct
{
char data[MAX]; //栈中的数组data
int top; //栈顶位置
}sstack; //顺序栈

void initstack(sstack *s)//初始化顺序栈
{
s->top= 0;
}

void push(sstack *s, char x)
{
// s为栈指针,x为入栈的新元素,将x压入到s栈顶
if(s->top==MAX-1) //检查是否栈满
printf("栈已满,不能入栈!");
else
{ ______请补充完整______ //使top指向新的位置
______请补充完整______ //把x放入新栈顶
}
}
void pop(sstack *s)
{ //若栈s不为空,则删除栈顶元素
if(______请补充完整______ ) //检查是否栈空
printf("栈为空,不能出栈!");/*栈空*/
else
______请补充完整______ //修改栈顶指针
}

char gettop(sstack *s)
{ //若栈s不为空,则取得栈顶元素
if(______请补充完整______ ) //栈空
printf("栈为空!");
else
return(s->data[s->top]); //返回栈顶元素
}

void check(sstack *s)
{
int bool; char ch;
push(s,'#'); //在栈底压入#,做为结束标志
scanf("%c",

#include<stdio.h>
#define MAX 20
typedef struct
{
char data[MAX]; //栈中的数组data
int top; //栈顶位置
}sstack; //顺序栈

void initstack(sstack *s)//初始化顺序栈
{
s->top= 0;
}

void push(sstack *s, char x)
{
// s为栈指针,x为入栈的新元素,将x压入到s栈顶
if(s->top==MAX-1) //检查是否栈满
printf("栈已满,不能入栈!");
else
{ s->top++; //使top指向新的位置
s->data[s->top-1]=x; //把x放入新栈顶
}
}

void pop(sstack *s)
{ //若栈s不为空,则删除栈顶元素
if(s->top==0 ) //检查是否栈空
printf("栈为空,不能出栈!");/*栈空*/
else
s->top--;//修改栈顶指针
}

char gettop(sstack *s)
{ //若栈s不为空,则取得栈顶元素
if(s->top==0) //栈空
printf("栈为空!");
else
return(s->data[s->top]); //返回栈顶元素
}

void check(sstack *s)
{
int bool; char ch;
push(s,'#'); //在栈底压入#,做为结束标志
scanf("%c",&c