欢迎来到天天文库
浏览记录
ID:18681330
大小:213.48 KB
页数:34页
时间:2018-09-21
《《数据结构》课程设计-数据结构演示系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数据结构》课程设计-------------数据结构演示系统课程设计报告学院专业班级学号姓名完成日期目录一,------------需求分析-----------------二,------------概要设计-----------------三,------------详细设计-----------------四,------------调试分析-----------------五,------------测试结果-----------------六,------------设计总结-----------------七,------------参考文献----
2、-------------八,------------附录程序-----------------一,课程设计题目数据结构演示系统1(1)、顺序表的插入、删除和合并等基本操作(2)、利用插入运算建立链表;实现链表的查找、删除、计数、输出等功能以及有序链表的合并。(3)、串的模式匹配(包括求next和nextval的值)。2程序模块的功能要求(1)输入的形式和输入值的范围(2)顺序表和链表的输入形式是整形,输入值的范围是0---9999。串的输入形式是字符型(3)输出的形式顺序表和链表的输出形式是整形;串的输出形式是字符型。(4)程序所能达到的功能;实现顺序表的创建、
3、插入、删除和合并实现链表的创建、查找、删除、插入、输出。实现串的模式匹配(包括求next和nextval的值)(1)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果顺序表的输入:0
4、11
5、22
6、33
7、44
8、55
9、66
10、77
11、88
12、99
13、链表输入:23456789二,概要设计1,定义定义顺序表的结构体typedefintElemType;typedefstruct//定义顺序表结构体{ElemTypedata[MAXSIZE];intlength;}SqList;定义链表的结点结构typedefstructnode/*定义单链表结点结构类型*/{in
14、tdata;/*结点的数据域*/structnode*next;/*结点的指针域*/}linklist;定义字符串的数组结构intIndexBF(chars[],chart[],intpos){inti,j,m,n;i=pos-1;j=0;m=strlen(s);n=strlen(t);2,主流程图主菜单界面选择:顺序表;链表;串;离开顺序表操作链表操作创建删除合并查找删除输出串操作求next求nextval结束插入创建创建主串创建子串插入3,各模块之间的层次关系(1)第一层为主界面函数,第二层为顺序表界面函数、链表界面函数、模式匹配界面函数第三层为顺序表子函数、
15、链表子函数、模式匹配子函数(2)主界面函数调用的函数有sqlistfuc()、linklistfuc()、indexfuc()顺序表界面调用的函数有creatsq()、listinsert()、listdelete()、mergelist()链表界面调用的函数有creat()、insert()、delete()、search()、、mergelink()、模式匹配界面调用的函数有creatstring()、KMP(),GetNext(),GetNextval三,详细设计(见附录)四、调试分析1、调试过程中遇到的问题是如何解决的以及对设计与实现的讨论和分析(1)一开
16、始在在调试程序时遇到了内存错误,最终通过网上查资料找到了出错的原因:在建立对头指针和队尾指针时没有对指针进行初始化,即没有为指针动态分配空间。(2指针变量没有初始化。定义一个指针变量,C编译系统即为它开辟了一个存储空间,如果不进行初始化,则存放的是一个随机地址,它指向的位置就不确定,这在C中是很危险的,如果让一个随机的指针去指向一个随机的地址的话,可能会指向系统的工作区域,破坏数据,从而破坏某种设置,结果可能会使系统运行失常、死机甚至瘫痪。(3)警告错误太多。忽略这些警告错误并不影响程序的执行,但有时会影响到程序的执行结果,所以一定要对“WARNING”错误引起足
17、够重视,编程时尽量按照警告信息消除可能影响程序结果的隐患。编译时当警告错误数目大于某一规定值时(缺省为100)便退出编译器,这时应改变集成开发环境菜单Options/Compiler/Errors中的有关警告错误检查开关为off。(4)循环语句中,循环控制变量在每次循环未进行改变,使循环成为死循环;或和在循环语句中,不能正确的给循环变量初始化,造成循环次数不合乎要求,得不到正确的结果。2、算法的时间复杂性(1)顺序表查找的时间复杂度为:O(1)、插入的时间复杂度为:O(N)、删除的时间复杂度为:O(N)、合并的时间复杂度为:O(N)(2)有序链表插入、查找、删除、
18、合并的时间
此文档下载收益归作者所有