电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据结构实验3:栈子系统VIP专享VIP免费

数据结构实验3:栈子系统_第1页
数据结构实验3:栈子系统_第2页
数据结构实验3:栈子系统_第3页
验证性实验3 :栈子系统 班级学号 20 姓名 施程程 1.实验目的 (1)掌握栈的特点及其描述方法。 (2)用链式存储结构实现一个栈。 (3)掌握建栈的各种基本操作。 (4)掌握栈的几个典型应用的算法。 2.实验内容 (1)设计一个字符型的链栈。 (2)编写进栈、出栈、显示栈中全部元素的程序。 (3)编写一个把十进制整数转换成二进制数的应用程序。 (4)编写一个把中缀表达式转换成后缀表达式(逆波兰式)的应用程序。 (5)设计一个选择式菜单,以菜单方式选择上述操作。 栈 子 系 统 ********************************************** * 1---------进 栈 * * 2---------出 栈 * * 3---------显 示 * * 4---------数制转换 * * 5---------逆波兰式 * * 0---------返 回 * ********************************************** 请选择菜单号(0--5): 3.实验程序(附 zhan.cpp) #include #include #define STACKMAX 100 typedef struct stacknode { int data; struct stacknode *next; }StackNode; typedef struct { StackNode *top; }LinkStack; void Push (LinkStack &s,int x) { StackNode *p=new StackNode; p->data=x; p->next=s.top; s.top=p; } int Pop(LinkStack &s,int &x) { StackNode *p; if(s.top!=NULL) { p=s.top; x=p->data; s.top=p->next; delete p; return 1; } else return 0; } void ShowStack (LinkStack s) { StackNode *p=s.top; if (p==NULL) printf("\n\t\t 栈为空。 "); else { printf("\n\t\t 栈元素为: "); while (p!=NULL) { printf("%6d",p->data); p=p->next; } printf("\n"); } } void Conversion(int n) { LinkStack s; int x; s.top=NULL; do { x=n%2; n=n/2; Push(s,x); }while(n); printf("\n\t\t 转换后的二进制数值: "); while (Pop(s,x)) printf("%d",x); printf("\n"); } void Suffix() { char str[STACKMAX]; char stack[STACKMAX]; char exp[STACKMAX]; char ch; int sum,i,j,t,top=0; printf("\n\t\t 输入算术表达式(算术符只能包含+,-,*,/),以#结束:\n\t\t"); fflush(stdin); i=0; do { i++; scanf("%c",&str[i]); }while(str[i]!='#'&& i!=STACKMAX); sum=i; t=1; i=1; ch=str[i];...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部