数据结构实验三(顺序栈的基本操作)_第1页
数据结构实验三(顺序栈的基本操作)_第2页
数据结构实验三(顺序栈的基本操作)_第3页
数据结构实验三(顺序栈的基本操作)_第4页
数据结构实验三(顺序栈的基本操作)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include〈stdio.h>#include〈malloc・h>#include〈windows・h>#defineMAXSIZE100typedefintDataTypi;typedefstructstack{DataTypedata[MAXSIZE];inttop;}sqstack;sqstack*InitStack(sqstack*S)//顺序栈的初始化{S->top=-l;returnS;}voidpush(sqstack*S,DataTypex)//顺序栈的元素入栈{辻(S->top>MAXSIZE-l)printf("error!");elseS_>top++;S~>data[S->top_=x;}DataTypepop(sqstack*S)//顺序栈的元素出栈{intx;if(S->top二二-1)printf(,zUnderflow!z,);else{x=S~>data[S->top];printfC出栈的元素为d\n",S~>dataLS->top]);S_>top__;}returnx;DataTypeGetTop(sqstack*S)//顺序栈取顶元素{if(S->top二二T){printf(/zUnderflow!\n,z);return0;}elsereturnS~>data[S~>top];}intEmpty(sqstack*S)//顺序栈的判空{if(S->top二二T)return1;else:return0;}voidDigit_conversion(sqstack*S){inti=0,x,y,k[MAXSIZE],m;InitStack(S);printf(“请输入一个十进制数和您将要转换的进制数(2,&16):\『);scanf(,z%d%dz,,&x,&y);while(x)push(S,x%y);x二x/y;}wh订己(!Empty(S))k[i]=pop(S);i++;m=i;

}printf(“十进制数转化为进制数为:〃);for(i=0;i<m;i++){if(k[i]>9)printf(z,%c,z,k[i]+‘A'~10);elseprintfk[i]);}intmainOsqstack*L,*Sqstack;charm;intdata;L=(sqstack*)malloc(sizeof(sqstack));system(,zcolor3f");菜单列表printf(“菜单列表printf(〃\trprintf(〃\printf(〃\t•1••*1••j•*1•♦.•••j•*1••j•*1••*•♦♦|•*1••|♦•*i*•I••|•.••|•*1••j••♦*••\n〃);printf(/z\n〃);printf(/z\tI*0•退出*1•顺序栈的初始化*Iprintf(/z\tI*printf(〃\t•/••"•••••/•••/••••"••••"••••"••••"•••••/•••/••••"••••"••••"•••/•••"••••"••••"•••/•••"••••"••••"••••"•••••/•••/••••"••••"••••1•♦j••I••|••I•••||••I••*••I••|••j•printf(〃\t•/••"•••••/•••/••••"••••"••••"••••"•••••/•••/••••"••••"••••"•••/•••"••••"••••"•••/•••"••••"••••"••••"•••••/•••/••••"••••"••••1•♦j••I••|••I•••||••I••*••I••|••j•♦I••|•♦.•♦j••I••j••I♦\n〃);printf(/z\tI*\n");printf(/z\tI*2•元素的入栈*3•元素的出栈*1*1\n〃);printf(/z\tI*printf(/z\tI*printfprintf(〃\t•1•♦j•|••I••••••j•••j•♦♦.••I••j•|•I••j••I••|•♦<1••|♦.•♦|••j••I••|•♦♦♦printf(z,\t|*printfC\t|*4•取栈顶元素\n");printfC\t|*4•取栈顶元素\n");printf(z,\t|**5.判空*1printf(z,\t|*\n");printf(z,*1printf(z,\t|*\n");printf(z,\t|*6.将十进制数转换为其他进制数printf(〃\t\n〃);printf(z,\t|*printf(〃\t\n〃);printf(〃\twhig((m=,O')&&(m二'1’)&&(m=,2’)&&(m二'3')&&(m二'4’)&&(m二'5,)&&(m=‘6’)&&(m=‘T))printf(/z\n请选择你需要操作的步骤(0至7):“);fflush(stdin);scanf("%c",&m);switch(m){case'O':{exit(O);break;}case'1':{Sqstack=InitStack(L);break;}case'2’:{printf("输入你要入栈的数据:\n");scanf(,z%d,z,&data);fflush(stdin);while(data!=0)push(Sqstack,data);printf("继续输入你要入栈的数据,若想结束,请按0终止\n");scanf&data);}break;}case'3’:{pop(Sqstack);break;}case'4’:{printf(”输入取出的栈顶元素:\n");printf(,z其值为:%d\n,z,GetTop(Sqstack));}brea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论