数据结构用c语言描述实验四

数据结构用c语言描述实验四

ID:22287559

大小:88.22 KB

页数:10页

时间:2018-10-28

数据结构用c语言描述实验四_第1页
数据结构用c语言描述实验四_第2页
数据结构用c语言描述实验四_第3页
数据结构用c语言描述实验四_第4页
数据结构用c语言描述实验四_第5页
资源描述:

《数据结构用c语言描述实验四》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验学时数4实验四实验名称栈和队列及其应用实验性质设计性学吋一、实验目的1.掌握栈与队列的抽象数据类型描述及特点。2.掌握栈和队列的顺序和链式存储结构与基本算法实现。3.掌握栈和队列在实际问题中的应用和基本编程技巧。二、实验内容1.栈和队列在不同存储结构上进行插入、删除等操作的算法。2.通过栈或队列解决现实中的一些问题。一一一实验过程1、实验题目[问题描述]以卜*题目根据Cl己兴趣和能力可选作一道作为实验题目:(1)根据栈的数据结构,建立一个顺序栈和链栈并实现对其基本操作;(2)根据队列的数裾结构,建立

2、一个循环队列和链队并实现对其基本操作;(3)根据教材4.3.3节介绍的思想,设计并实现一个对简化表达式求值的系统(4)银行业务队列简单模拟。设某银行有A、B两个业务窗口,其中A窗口的处理速度是B窗口的2倍,给定到达银行的顾客序号,请按业务完成的顺序输出顾客序列(假设奇数编号到A窗口办理,偶数编号到B窗口办理,不同窗口同时处理完2个顾客,A窗口优先输出)。[基本要求](1)按实验内容编写完整的程序,并上机验证。(2)实验完成后,提交电子档教师验收程序,并提交填写好的实验报告。[测试数据]由学生依裾软件工程

3、的测试技术C1己确定。注意测试边界数裾。2、源程序#include〈stdio.h>#includc#defineStackSize100#defineStackElementTypeintSdefineTRUE1ftdcfincFALSE0typedefstruct//顺序钱{StackElcmcntTypcclcm[StackSize];inttop;}SeqStack;typedefstructnode//链栈{StackElcmcntTypcdata;structnode氺n

4、ext;}LinkStackNode;typedefLinkStackNodc本LinkStack;voidInitStack(SeqStack*s)//初始化顺序拽{s->top=~l;}voidInitStackJL(LinkStackNodc*s)//初始化链栈{s->next=NULL;}intPush(ScqStack*s,StackElcmcntTypcx)//顺序栈进栈{if(s->top==Stack_Size-l)return(FALSE);s->top++;s->clcm[s->to

5、p]=x;return(TRUE);}intPop(SeqStack*s,StackElementType*x)//顺序栈出栈{if(s->top==-l)return(FALSE);else{*x=s->clcm[s->top];s->top—;printf("出栈元素为:%d〃,*x);return(TRUE);}}voidprint(ScqStacks)//打印顺序栈{inti;if(s.top==-l)printf(〃栈为空:");else{printf("栈里的元素为.•");do{pri

6、ntf(〃%4d〃,s.clcm[s.top]);s.top一一;}while(s.top!=-l);printf(z/z,);}}intPush(LinkStacktop,StackElementTypex)//链栈进栈{LinkStackNode^temp;tcmp=(LinkStackNodc*)malloc(sizcof(LinkStackNodc));if(tcmp==NULL)return(FALSE);temp->dcita=x;tcmp->ncxt=top->ncxt;top->nc

7、xt=tcmp;return(TRUE);}intPop(LinkStacktop,StackElementType*x)//链栈出栈{LinkStackNodc*tcmp;temp=top->next;if(temp==NULL)return(FALSE);top->next=temp->next;*x=temp->data;free(temp);return(TRUE);}voidprint(LinkStacks)//打印链栈LinkStackp=s->next;printf("栈中的元素为:");

8、while(p!=NULL){printf(〃%4d〃,p->dcita);p=p->ncxt;}printfC’");}intmain(){intchoiceO,choicel,choice2,x,y,i,k;ScqStacksi;LinkStackNodcs2;do{printf("请输入您的选择:1.我耍对顺序栈进行操作2.我要对链栈进行操作0.退出");scanf("%d",&choiceO);switch(choiccO)

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

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

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