数据结构C语言版判断回文数实验报告.doc

数据结构C语言版判断回文数实验报告.doc

ID:56773397

大小:150.50 KB

页数:7页

时间:2020-07-08

数据结构C语言版判断回文数实验报告.doc_第1页
数据结构C语言版判断回文数实验报告.doc_第2页
数据结构C语言版判断回文数实验报告.doc_第3页
数据结构C语言版判断回文数实验报告.doc_第4页
数据结构C语言版判断回文数实验报告.doc_第5页
资源描述:

《数据结构C语言版判断回文数实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据结构实验报告判断回文数班级:班内序号:学生姓名:指导教师:时间:2011年10月24日一、实验目的熟悉栈和队列的各项操作,区别栈和队列的操作原理。一、实验内容利用栈的操作完成读入的一个以*结尾的字符序列是否是回文序列的判断。回文序列即正读与反读都一样的字符序列,例如:43211234*是回文序列,而789678*不是。二、数据结构及算法思想算法思想:从键盘上读取一个字符,同时存储在顺序栈与链队列之中,直到字符序列的最后一个字符为*停止插入。在程序中设置了一个标志位flag,将输入的序列分别做入栈、出栈、入队、出队操作,若出栈与出队的数据完全一致,则将flag标志为1

2、,否则为零。Flag为1,则表示该序列是回文序列,否则,为非回文序列。三、模块划分1.对各个模块进行功能的描述(1)voidInitStack(SeqStack*S):栈初始化模块,即初始化一个空栈,随后对该空栈进行数据的写入操作;(2)intPush(SeqStack*S,charx,intcnt):入栈操作,即给空栈中写入数据,数据长度有宏定义给出;(3)intPop(SeqStack*S,char*x):出栈操作,即将栈中的数据输出,由于栈的操作是先进后出,因此,出栈的数据是原先输入数据的逆序;(4)voidInitQuene(SeqQuene*Q):队列初始化,

3、即初始化一个空队列,最后对该空队列进行数据的写入操作;(5)intEnterQuene(SeqQuene*Q,charx,intcnt):入队操作,即给空队列中写入数据,数据长度一样有宏定义给出;(6)intDeleteQuene(SeqQuene*Q,char*x,intcnt):出队操作,即将队列中的数据输出,由于队列的操作是先进先出,因此,出队的数据室原先输入数据的正序;(7)voidmain():主函数,用于调用前面的模块,进行出队数据与出栈数据的比较,判断输入的序列是否是回文序列。2.模块之间关系及其相互调用的图示一、详细设计及运行结果(1)程序设计及编码#i

4、nclude#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

5、-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->f

6、ront)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[M

7、AX],b[MAX],c[MAX];flag=0;printf("请输入由*结束且小于%d的回文序列:",MAX);for(i=0;i

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

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

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