实验3:栈子系统.doc

实验3:栈子系统.doc

ID:55294573

大小:201.00 KB

页数:10页

时间:2020-05-09

实验3:栈子系统.doc_第1页
实验3:栈子系统.doc_第2页
实验3:栈子系统.doc_第3页
实验3:栈子系统.doc_第4页
实验3:栈子系统.doc_第5页
资源描述:

《实验3:栈子系统.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、验证性实验3:栈子系统班级:H1001学号:09姓名:陆俊实验日期:2011.09.28~10.121.实验目的(1)掌握栈的特点及其描述方法。(2)用链式存储结构实现一个栈。(3)掌握建栈的各种基本操作。(4)掌握栈的几个典型应用的算法。2.实验内容(1)设计一个字符型的链栈。(2)编写进栈、出栈、显示栈中全部元素的程序。(3)编写一个把十进制整数转换成二进制数的应用程序。(4)编写一个把中缀表达式转换成后缀表达式(逆波兰式)的应用程序。(5)设计一个选择式菜单,以菜单方式选择上述操作。栈子系统***********************************************

2、1---------进栈**2---------出栈**3---------显示**4---------数制转换**5---------逆波兰式**0---------返回***********************************************请选择菜单号(0--5):3.实验程序(附zhan.cpp)#include#include#defineSTACKMAX100typedefstructstacknode{intdata;structstacknode*next;}StackNode;typedefstruct{Stack

3、Node*top;}LinkStack;voidPush(LinkStack&s,intx){StackNode*p=newStackNode;p->data=x;p->next=s.top;s.top=p;}intPop(LinkStack&s,int&x){StackNode*p;if(s.top!=NULL){p=s.top;x=p->data;s.top=p->next;deletep;return1;}elsereturn0;}voidShowStack(LinkStacks){StackNode*p=s.top;if(p==NULL)printf("tt栈为空。");e

4、lse{printf("tt栈元素为空:");while(p!=NULL){printf("%6d",p->data);p=p->next;}printf("");}}voidConversion(intn){LinkStacks;intx;s.top=NULL;do{x=n%2;n=n/2;Push(s,x);}while(n);printf("tt转换后的二进制数值为:");while(Pop(s,x))printf("%d",x);printf("");}voidSuffix(){charstr[STACKMAX];charstack[STACKMAX];ch

5、arexp[STACKMAX];charch;intsum,i,j,t,top=0;printf("tt输入算术表达式(运算符只能包含+,-,*,/),以#结束:tt");fflush(stdin);i=0;do{i++;scanf("%c",&str[i]);}while(str[i]!='#'&&i!=STACKMAX);sum=i;t=1;i=1;ch=str[i];i++;while(ch!='#'){switch(ch){case'(':top++;stack[top]=ch;break;case')':while(stack[top]!='('){exp[t++

6、]=stack[top--];exp[t++]=',';}top--;break;case'+':case'-':while(top!=0&&stack[top]!='('){exp[t++]=stack[top--];exp[t++]=',';}stack[++top]=ch;break;case'*':case'/':while(stack[top]=='*'

7、

8、stack[top]=='/'){exp[t++]=stack[top--];exp[t++]=',';}stack[++top]=ch;break;case'':break;default:while(ch>='0'&&ch

9、<='z'){exp[t++]=ch;ch=str[i++];}i--;exp[t++]=',';}ch=str[i++];}while(top!=0){exp[t++]=stack[top--];if(top!=0)exp[t++]=',';}printf("tt输入的中缀表达式:");for(j=1;j

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。