欢迎来到天天文库
浏览记录
ID:47518139
大小:145.50 KB
页数:15页
时间:2020-01-12
《数据结构课程设计回文数问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、湖南科技学院课程设计报告课程名称:数据结构课程设计课程设计题目:02、回文问题系:专业:年级、班:姓名:学号:指导教师:职称:2011年12月目录1.问题描述----------------------------------------------------------------------32.具体要求----------------------------------------------------------------------33.测试数据-----------------------------------------------
2、-----------------------34.算法思想----------------------------------------------------------------------35.模块划分----------------------------------------------------------------------46.数据结构----------------------------------------------------------------------47.源程序--------------------
3、----------------------------------------------------78.测试情况--------------------------------------------------------------------149.设计总结--------------------------------------------------------------------1410.参考文献--------------------------------------------------------------------
4、15一、问题描述利用栈跟队列找出一个TXT文档中所有的回文单词并输出。回文单词就是单词中字母从前往后拼与从后往前拼得出的单词是一样的,如:AaA、121、1221、d、did等,从数据结构角度看,栈和队列是特殊的线性表,其特殊性在于栈和队列的基本操作是线性表操作的子集,它们是操作受限的线性表,而栈是一种限定仅在表尾进行插入或删除的线性表,栈的修改是按先进后出的顺序进行的,队列是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端进行删除,因此可利用栈和队列的这两个性质对一个单词是否为回文单词进行检测,如果是则输出这个单词即可。一句话里可能既包含字
5、母、数字还可能包含标点符号,回文单词的判断是不包含标点符号的,但文件输入流读取的时候标点也被一起读取进来了,因此要删除紧跟单词后中的标点符号,单独对各个单词进行判断。二、具体要求此课程设计要求编写程序以实现检测出文档中的回文单词并将其输出的功能,首先要将每一个单词从文档读取出来,其次对每一个单词进行回文判断,主程序用栈和队列实现,以进一步巩固、理解和熟练掌握栈和队列的基本操作;同时对文本文件进行读取数据要利用到文件输入流的知识。三、测试数据用文本文档data.txt,进行测试,输出回文数,及个数。文本文档中除英文字母,数字,常见标点符号外无其他字符,并且
6、编码采用常见的ANSI编码。四、算法思路1、初始化栈和队列,读入TXT文本文档,若文档不能正常读入,则输出文档读入错误,若正常读入,文档非空则将文档中的单词逐个读入到字符串中。2、因为标点符号都是紧跟单词后的,故对每个字符串首先得判断最后一个字符c,若c既不是字母也不是数字,字符串的长度减一,即以标点符号结束的字符串最后一个字符不压入栈跟队列,不参与回文单词的判断。3、调用出栈与出队列函数,逐个比较出栈与出队列字符是否一样,用count记录栈中出来的与队列出来的相同字符的个数,若count==str.length()则说明该字符串从栈中出来跟从队列出来完
7、全一样,即字符串完全对称,为回文单词,输出,回文单词加一个,否则什么也不做。4、读取至文本文档最后时,程序结束,关闭文本文档,同时销毁队列。5、假设文本文档中除英文字母,数字,常见标点符号外无其他字符,并且编码采用常见的ANSI编码。五、模块划分函数功能:voidinitStack(SqStack&s);//构造一个空栈svoidclearStack(SqStack&s);//清空栈boolisEmpty(SqStack&s);//判断栈是否为空boolisFull(SqStack&s);//判断栈是否满voidpush(SqStack&s,constc
8、har&e);//插入元素e为s的新的栈顶元素(进栈)charpop(SqSta
此文档下载收益归作者所有