《数据结构实验三(顺序栈的基本操作)(5页).doc》由会员分享,可在线阅读,更多相关《数据结构实验三(顺序栈的基本操作)(5页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-数据结构实验三(顺序栈的基本操作)-第 4 页#include#include#include#define MAXSIZE 100typedef int DataType;typedef struct stackDataType dataMAXSIZE;int top;sqstack;sqstack *InitStack(sqstack *S)/顺序栈的初始化S-top=-1;return S;void push(sqstack *S,DataType x)/顺序栈的元素入栈if(S-topMAXSIZE-1)printf(error!);elseS-top+;S-dataS-top=x;
2、DataType pop(sqstack *S)/顺序栈的元素出栈int x;if(S-top=-1)printf(Underflow!);elsex=S-dataS-top;printf(出栈的元素为:%dn,S-dataS-top);S-top-;return x;DataType GetTop(sqstack *S)/顺序栈取顶元素if(S-top=-1)printf(Underflow!n);return 0;elsereturn S-dataS-top;int Empty(sqstack *S)/顺序栈的判空if(S-top=-1)return 1;else return 0;voi
3、d Digit_conversion(sqstack *S)int i=0,x,y,kMAXSIZE,m;InitStack(S);printf(请输入一个十进制数和您将要转换的进制数(2,8,16):n);scanf(%d%d,&x,&y);while(x)push(S,x%y);x=x/y;while(!Empty(S)ki=pop(S);i+;m=i;printf(十进制数转化为进制数为:);for(i=0;i9)printf(%c,ki+A-10); else printf(%3d,ki);int main()sqstack *L,*Sqstack;char m;int data; L
4、=(sqstack *)malloc(sizeof(sqstack);system(color 3f);printf( 菜单列表 n);printf(tn);printf(t*n);printf(t* * *n);printf(t* 0.退出 * 1.顺序栈的初始化 *n);printf(t* * *n);printf(t*n);printf(t* * *n);printf(t* 2.元素的入栈 * 3.元素的出栈 *n);printf(t* * *n);printf(t*n);printf(t* * *n);printf(t* 4.取栈顶元素 * 5.判空 *n);printf(t* * *
5、n);printf(t*n);printf(t* *n);printf(t* 6.将十进制数转换为其他进制数 *n);printf(t* *n);printf(t*n);printf(tn);while (m=0)&(m=1)&(m=2)&(m=3)&(m=4)&(m=5)&(m=6)&(m=7)printf(n请选择你需要操作的步骤(0至7):);fflush(stdin);scanf(%c,&m);switch(m)case 0:exit(0);break;case 1:Sqstack=InitStack(L);break;case 2:printf(输入你要入栈的数据:n);scanf(
6、%d,&data);fflush(stdin);while(data!=0)push(Sqstack,data);printf(继续输入你要入栈的数据,若想结束,请按0终止n);scanf(%d,&data);break;case 3:pop(Sqstack);break;case 4:printf(输入取出的栈顶元素:n);printf(其值为:%dn,GetTop(Sqstack);break;case 5:if(Empty(Sqstack)=1)printf(此栈为空!n);elseprintf(此栈不为空!n);break;case 6:Digit_conversion(Sqstack);break;return 0;