第5周项目3 -括号的匹配
来源:互联网 发布:如何学软件技术培训 编辑:程序博客网 时间:2024/04/28 17:50
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int top; //栈指针
} SqStack; //顺序栈类型定义
void InitStack(SqStack *&s); //初始化栈
void DestroyStack(SqStack *&s); //销毁栈
bool StackEmpty(SqStack *s); //栈是否为空
int StackLength(SqStack *s); //返回栈中元素个数——栈长度
bool Push(SqStack *&s,ElemType e); //入栈
bool Pop(SqStack *&s,ElemType &e); //出栈
bool GetTop(SqStack *s,ElemType &e); //取栈顶数据元素
void DispStack(SqStack *s); //输出栈
void InitStack(SqStack *&s)//初始化栈
{
s=(SqStack *)malloc(sizeof(SqStack));
s->top=-1;
}
void DestroyStack(SqStack *&s)//销毁栈
{
free(s);
}
int StackLength(SqStack *s) //返回栈中元素个数——栈长度
{
return(s->top+1);
}
bool StackEmpty(SqStack *s)//判断是否为空栈
{
return(s->top==-1);
}
bool Push(SqStack *&s,ElemType e)
{
if (s->top==MaxSize-1) //栈满的情况,即栈上溢出
return false;
s->top++;
s->data[s->top]=e;
return true;
}
bool Pop(SqStack *&s,ElemType &e)
{
if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
s->top--;
return true;
}
bool GetTop(SqStack *s,ElemType &e)
{
if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top];
return true;
}
void DispStack(SqStack *s) //输出栈
{
int i;
for (i=s->top;i>=0;i--)
printf("%c ",s->data[i]);
printf("\n");
}
int main()
{
char c;
char st[50];
int d=1, i;
SqStack *s;
InitStack(s);
printf("请输入表达式:");
scanf("%s", st);
for(i=0; st[i]!='\0'&&d; i++)
{
switch(st[i])
{
case'(':
case'[':
case'{':
Push(s, st[i]);
break;
case')':
Pop(s, c);
if(c!='(') d=0;
break;
case']':
Pop(s, c);
if(c!='[') d=0;
break;
case'}':
Pop(s,c);
if(c!='{') d=0;
break;
}
}
if(StackEmpty(s)&&d==1)
printf("配对正确!!\n");
else
printf("配对错误!!\n");
return 0;
}
- 第5周项目3--括号的匹配
- 第5周 项目3-括号的匹配
- 第5周项目3 -括号的匹配
- 第5周项目3-括号的匹配
- 第5周项目3-括号的匹配
- 【第5周 项目3-括号的匹配】
- 第5周项目3-括号的匹配
- 第5周项目3 -括号的匹配
- 第5周项目3-括号的匹配
- 第5周项目3 括号的匹配
- 第5周 项目3 - 括号的匹配(1)
- 第5周 项目3 - 括号的匹配(2)
- 第5周项目3-括号的匹配
- 第5周项目3 括号的匹配
- 第5周项目3-括号的匹配
- 第5周项目3-括号的匹配
- 第5周项目3- 括号的匹配
- 第5周项目3-括号的匹配
- Matlab 简单笔记
- Matlab GUI笔记
- Java 把网页转成图片
- JVM对象探秘
- 程序设计与数组
- 第5周项目3 -括号的匹配
- win10磁盘占用100%
- 第五周项目5-后缀表达式(选做)
- [Android]智慧聊天机器人
- Linux下配置tomcat自启动
- win10自动更新关闭
- Mybatis简单入门
- 下载不能下载的视频
- 第五周项目三-括号的匹配(栈)