数据结构实验报告 判断回文数 班 级 : 班内 序 号 : 学 生 姓 名 : 指 导 教 师 : 时间 : 2011年 10月 24日 一、实验目的 熟悉栈和队列的各项操作,区别栈和队列的操作原理
二、实验内容 利用栈的操作完成读入的一个以*结尾的字符序列是否是回文序列的判断
回文序列即正读与反读都一样的字符序列,例如:43211234*是回文序列,而 789678*不是
三、数据结构及算法思想 算法思想:从键盘上读取一个字符,同时存储在顺序栈与链队列之中,直到字符序列的最后一个字符为*停止插入
在程序中设置了一个标志位 flag,将输入的序列分别做入栈、出栈、入队、出队操作,若出栈与出队的数据完全一致,则将 flag 标志为 1,否则为零
Flag为 1,则表示该序列是回文序列,否则,为非回文序列
四、模块划分 1
对各个模块进行功能的描述 (1)v oid InitStack(SeqStack *S):栈初始化模块,即初始化一个空栈,随后对该空栈进行数据的写入操作; (2)int Pu sh(SeqStack *S,char x ,int cnt):入栈操作,即给空栈中写入数据,数据长度有宏定义给出; (3)int Pop(SeqStack * S,char * x ):出栈操作,即将栈中的数据输出,由于栈的操作是先进后出,因此,出栈的数据是原先输入数据的逆序; (4)v oid InitQu ene(SeqQu ene *Q):队列初始化,即初始化一个空队列,最后对该空队列进行数据的写入操作; (5)int EnterQu ene(SeqQu ene *Q,char x ,int cnt):入队操作,即给空队列中写入数据,数据长度一样有宏定义给出; (6)int DeleteQu ene(SeqQu ene *Q,char *x ,int cnt):出队操