⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stack1.cpp

📁 这是我学习数据结构时用过的程序。索性打包传上去。数据结构实验用。
💻 CPP
字号:
#include<stdio.h>
#include"math.h"
#include"string.h"
#include"ctype.h"
#define sqStackSize 15
typedef char dataType;
typedef struct sqStack{
 dataType data[sqStackSize];
 int top;
}sqStackTp;
char ch,chs,e,f='T';
void InitStack(sqStackTp *sq){sq->top=-1;}
int StackEmpty(sqStackTp *sq){return sq->top==-1;}
int StackFull(sqStackTp *sq){return sq->top==sqStackSize-1;}
char push(sqStackTp *sq,dataType x){
 if(StackFull(sq)){printf("%s\n","Stack overflow!");return 'O';}
 else {sq->data[++sq->top]=x;return 'T';}
}
char pop(sqStackTp *sq,dataType &e){
 if(StackEmpty(sq)){printf("%s\n","Stack undowflow!");return 'U';}
 else {sq->data[sq->top]=' ';e=sq->data[sq->top--];return 'T';}
}
char gettop(sqStackTp *sq,dataType &e){
 if(StackEmpty(sq)){printf("%s\n","Stack is empty!");return 'E';}
 else {e=sq->data[sq->top];return 'T';}
}
void main(){
 sqStackTp *ssq;
 int f=0;
 InitStack(ssq);
 char ch=getchar();
 while (ch!='#'){
  switch(ch){
   case'(':;
   case'[':f=push(ssq,ch);break;
   case')':;
   case']':{f=gettop(ssq,chs);
	 if(f='T'&&(chs=='('&&ch==')'||chs=='['&&ch==']')) f=pop(ssq,e);
     else {f='C';printf("%s\n\n","ERROR!");}
	 break;}
   default:f='T';
  }//end switch
  printf("%s%s,%s%d\n\n","输入:",&f,"   栈顶:",ssq->top); 
  if(f!='T')break;
  else {scanf("%s",&ch);}
}//end while
 printf("%s,%d,%s%s\n%s",&f,ssq->top,"括号配对",(f=='T'&&ssq->top==-1)?"正确":"错误","空格键+回车=退出!");
 ch=getchar();
 while (ch!=' ') ch=getchar();
}//end main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -