《算法与数据结构》实验报告实验3__栈与队列的应用

《算法与数据结构》实验报告实验3__栈与队列的应用

ID:47204126

大小:59.03 KB

页数:8页

时间:2019-08-26

《算法与数据结构》实验报告实验3__栈与队列的应用_第1页
《算法与数据结构》实验报告实验3__栈与队列的应用_第2页
《算法与数据结构》实验报告实验3__栈与队列的应用_第3页
《算法与数据结构》实验报告实验3__栈与队列的应用_第4页
《算法与数据结构》实验报告实验3__栈与队列的应用_第5页
资源描述:

《《算法与数据结构》实验报告实验3__栈与队列的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《算法与数据结构》实验报告姓名学号专业班级计算机类1301指导教师实验名称实验3栈与队列的应用实验目的•了解并掌握栈与队列的概念与定义•能够实现并运用栈与队列•熟练运用栈与队列的基木操作•使用栈实现回溯算法实验环境•个人计算机一台,CPU主频1GHz以上,1GB以上内存,2GB以上硬盘剩余空间。•Windows2000>WindowsXP或Win7操作系统•Code::Blocks(版木12.11或近似版本,英文版),或VC++6.0实验内容1…一基本部分(妙徴)1.链式栈的创建与操作设链式栈屮元素

2、的数据类型为整型,编写函数实现以下操作:(1)链式栈的初始化(2)链式栈的输出(从栈顶到栈底)(3)链式栈的判空操作(4)链式栈入栈操作(5)链式栈的出栈操作(6)取栈顶元素的值注:链式栈可不带头节点源代码:ds6.c2.循环队列的创建与操作设循环队列屮元素的数据类型为整型,编写函数实现以下操作:(1)循环队列的初始化(2)循环队列的入栈(3)循环队列的出栈(4)取循环队列的栈顶元素(5)循环队列的输出(从栈顶到栈底)源代码:ds7.c3・符号平衡问题在语言中往往需要判断一些符号是否是成对出现的,比

3、如{}、[]、()。如何让判断符号的对称也是很多语言的语法检查的首要任务。设计一个函数来检查表达式屮的符号()、[]、{}是否平衡。若平衡,返回1;若不平衡返回0。例如:a(dda){[dfsafd[dfsd]](((fdsd)dfd))dfd}是符号平衡的。{ad[x(df)ds)]}不是符号平衡的o源代码:ds8.c实验代码:1.#include#defineMAXSIZEmaxlentypedefintelemtype;typedefstructstacknode{elemt

4、ypedata;structstacknode*next;JStackNode;typedefstruct{StackNode*top;}LinkStack;int*InitStack(LinkStack*S);〃初始化链式栈int*Push(LinkStack*S);〃入栈函数int*view(LinkStack*S);〃输出函数int*Pop(LinkStack*S);〃出栈函数intStackTop(LinkStack*S);〃取栈顶函数main(){LinkStack*S;inta;char

5、k;S=InitStack(S);if(S->top==NULL)printf(“该链式栈为空!”);Push(S);printfC*按任意键开始出栈!”);getchar();getchar();Pop(S);a=StackTop(S);printfC栈顶元素为%d”,a);printfC*程序运行完毕,是否重新运行(y/n):”);scanf("%s",&k);if(k==,y,){main();}}int*InitStack(LinkStack*S){S=(LinkStack*)malloc(

6、sizeof(LinkStack));S->top=NULL;return(S);}int*Push(LinkStack*S){intn,i,item;StackNode*p;printfC*请输入即将入栈的数据个数:”);scanf("%d",&n);for(i=0;idata=item;p->next=NULL;

7、p->next=S->top;S->top=p;}view(S);return(S);}int*view(LinkStack*S)StackNode*p;if(S->top==NULL){printfC链式栈为空!”);return(O);}elseprintf(n该链式栈从栈顶到栈底数据如H:");for(p=S->top;p!=NULL;p=p->next){printf("%d",p->data);}}int*Pop(LinkStack*S){StackNode*p;intitem;c

8、hark;p=S->top;if(S->top==NULL){printf(“链式栈为空!”);return(O);}else{item=p・>data;printf(H出栈数据为%dH,item);S->top=p->next;free(p);view(S);}printfC'是否继续出栈(y/n):n);scanf("%s”,&k);if(k==y){Pop(S);}elsereturn(S);}intStackTop(LinkStack*S)if(S->to

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

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

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