洛阳理工学院实验报告系别计算机系班级B130532学号B13053235姓名李登辉课程名称数据结构实验日期2014.3.28实验名称栈和队列的基本操作成绩实验目的:熟悉掌握栈和队列的特点,掌握与应用栈和队列的基本操作算法,训练和提高结构化程序设计能力及程序调试能力。实验条件:计算机一台,VisualC++6.0实验内容:1.问题描述利用栈和队列判断字符串是否为回文。称正读与反读都相同的字符序列为“回文”序列。要求利用栈和队列的基本算法实现判断一个字符串是否为回文。栈和队列的存储结构不限。2.数据结构类型定义typedefstruct{charelem[MAX];inttop;}SeqStack;顺序栈3.模块划分voidInitStack(SeqStack*S):栈初始化模块,intPush(SeqStack*S,charx,intcnt):入栈操作intPop(SeqStack*S,char*x):出栈操作voidInitQuene(SeqQuene*Q):队列初始化intEnterQuene(SeqQuene*Q,charx,intcnt):入队操作intDeleteQuene(SeqQuene*Q,char*x,intcnt):出队操作voidmain():主函数4.详细设计#include#include#defineMAX50#defineFALSE0#defineTURE1//定义栈typedefstruct{charelem[MAX];inttop;}SeqStack;//定义循环队列typedefstruct{charelement[MAX];intfront;intrear;}SeqQuene;//初始化栈voidInitStack(SeqStack*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*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->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的回文序列:\n",MAX);for(i=0;i