堆栈实验第二题
来源:互联网 发布:邓禹 知乎 编辑:程序博客网 时间:2024/05/03 00:45
/*设计算法判断一个算术表达式的圆括号是否正确配对*/
#include"stdio.h"
#include"malloc.h"
#define maxlen 100
typedef struct node{
char data[maxlen];
int top;
}SeqStack;
//建立空栈
SeqStack *SetStack (){
SeqStack *S;
S=(SeqStack*)malloc(sizeof(SeqStack));
S->top=-1;
return S;
}
//顺序栈置空算法
SeqStack *InintStack(SeqStack *S){
S->top = -1;
return S;
}
//判断栈空算法
int StackEmpty(SeqStack *S){
if(S->top>=0)
return 0;
else
return 1;
}
//判断栈满算法
int StackFull (SeqStack *S){
if(S->top<maxlen-1 && S->top>=0)
return 0;
else
return 1;
}
//取栈顶元素
char GetTop(SeqStack *S){
if(S->top<=maxlen-1 && S->top>=0)
return (S->data[S->top]);
else
printf("error");
}
//入栈
void Push (SeqStack *S,char x) {
if(S->top<maxlen-1 && S->top>=-1){
S->top++;
S->data[S->top]=x;
}
else
printf("error");
}
//出栈
void Pop(SeqStack *S){
if(S->top>=0)
S->top--;
else
printf("error");
}
int main(){
int i;
SeqStack *S;
S=SetStack();
char a[maxlen]={'(',')','(','+','-','-','(','8',')'};
for(i=0;i<maxlen;i++){
if(a[i]=='('){
Push(S,a[i]);
}
else if(a[i]==')'){
Pop(S);
}
}
if(StackEmpty(S)){
printf("配对!");
}
else
printf("不配对!");
}
#include"stdio.h"
#include"malloc.h"
#define maxlen 100
typedef struct node{
char data[maxlen];
int top;
}SeqStack;
//建立空栈
SeqStack *SetStack (){
SeqStack *S;
S=(SeqStack*)malloc(sizeof(SeqStack));
S->top=-1;
return S;
}
//顺序栈置空算法
SeqStack *InintStack(SeqStack *S){
S->top = -1;
return S;
}
//判断栈空算法
int StackEmpty(SeqStack *S){
if(S->top>=0)
return 0;
else
return 1;
}
//判断栈满算法
int StackFull (SeqStack *S){
if(S->top<maxlen-1 && S->top>=0)
return 0;
else
return 1;
}
//取栈顶元素
char GetTop(SeqStack *S){
if(S->top<=maxlen-1 && S->top>=0)
return (S->data[S->top]);
else
printf("error");
}
//入栈
void Push (SeqStack *S,char x) {
if(S->top<maxlen-1 && S->top>=-1){
S->top++;
S->data[S->top]=x;
}
else
printf("error");
}
//出栈
void Pop(SeqStack *S){
if(S->top>=0)
S->top--;
else
printf("error");
}
int main(){
int i;
SeqStack *S;
S=SetStack();
char a[maxlen]={'(',')','(','+','-','-','(','8',')'};
for(i=0;i<maxlen;i++){
if(a[i]=='('){
Push(S,a[i]);
}
else if(a[i]==')'){
Pop(S);
}
}
if(StackEmpty(S)){
printf("配对!");
}
else
printf("不配对!");
}
0 0
- 堆栈实验第二题
- java实验五第二题
- 实验(堆栈)
- 第二章实验作业2-7题
- c++第五次上机实验第二题
- 堆栈应用括号匹配实验
- 检查堆栈溢出的实验
- 第二周实验报告
- 第二周实验一
- 第二周实验二
- 第二周实验四
- 第二周实验报告
- 第二周实验报告
- 第二周上机实验
- JAVA第二周实验
- 第二章实验作业
- 第二章实验作业
- 第二章实验作业
- 英语培训新模式
- 机器学习分类算法应该如何选择?
- 十大Material Design开源项目
- 上海BD推广招聘面试技巧
- 出现fatal error LNK1120: 1 unresolved externals的原因
- 堆栈实验第二题
- 五大常用算法之五:分支限界法
- java中构造函数的存在
- startActivityForResult、setResult
- Lock
- UIPickerView + 城市选择
- 第十三周项目六:体验文件操作(热身)
- 山东快放假ADSL就覅为的所发
- 百度地图 onGetPermissionState 300