欢迎来到天天文库
浏览记录
ID:8843505
大小:49.00 KB
页数:6页
时间:2018-04-09
《栈和队列的基本操作》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、洛阳理工学院实验报告系别计算机系班级学号姓名课程名称数据结构实验日期2014.3.28实验名称栈和队列的基本操作成绩实验目的:熟悉掌握栈和队列的特点,掌握与应用栈和队列的基本操作算法,训练和提高结构化程序设计能力及程序调试能力。实验条件:计算机一台,VisualC++6.0实验内容:1.问题描述2.数据结构类型定义利用栈和队列判断字符串是否为回文。称正读与反读都相同的字符序列为“回文”序列。要求利用栈和队列的基本算法实现判断一个字符串是否为回文。栈和队列的存储结构不限。//定义栈typedefstruct{charelem[MAX];int
2、top;}SeqStack;//定义循环队列typedefstruct{charelement[MAX];intfront;intrear;}SeqQuene;3.模块划分(1)初始化栈:voidInitStack(SeqStack*S)(2)入栈:intPush(SeqStack*S,charx,intcnt)(1)出栈:intPop(SeqStack*S,char*x)(2)初始化队列:voidInitQuene(SeqQuene*Q)(3)入队:intEnterQuene(SeqQuene*Q,charx,intcnt)(4)出队:i
3、ntDeleteQuene(SeqQuene*Q,char*x,intcnt)(5)主函数:voidmain()1.详细设计#include#include#defineMAX50#defineFALSE0#defineTURE1//定义栈typedefstruct{charelem[MAX];inttop;}SeqStack;//定义循环队列typedefstruct{charelement[MAX];intfront;intrear;}SeqQuene;//初始化栈voidInitStack(Seq
4、Stack*S){S->top=-1;//构造一个空栈}//入栈intPush(SeqStack*S,charx,intcnt){if(S->top==cnt-1)return(FALSE);S->top++;S->elem[S->top]=x;return(TURE);}//出栈intPop(SeqStack*S,char*x){if(S->top==-1)return(FALSE);else{*x=S->elem[S->top];S->top--;return(TURE);}}//初始化队列voidInitQuene(SeqQuene*
5、Q){Q->front=Q->rear=0;}//入队intEnterQuene(SeqQuene*Q,charx,intcnt){if((Q->rear+1)%(cnt+1)==Q->front)return(FALSE);Q->element[Q->rear]=x;Q->rear=(Q->rear+1)%(cnt+1);return(TURE);}//出队intDeleteQuene(SeqQuene*Q,char*x,intcnt){if(Q->front==Q->rear)return(FALSE);*x=Q->element[Q-
6、>front];Q->front=(Q->front+1)%(cnt+1);return(TURE);}//主函数voidmain(){inti,cnt,flag;SeqStacks;SeqQueneq;chara[MAX],b[MAX],c[MAX];flag=0;printf("请输入由@结束且小于%d的回文序列:",MAX);for(i=0;i7、);InitQuene(&q);for(i=0;i8、
7、);InitQuene(&q);for(i=0;i8、
8、
此文档下载收益归作者所有