数据结构课程设计报告--演示系统

实现链表的创建、查找、删除、插入、输出。 实现串的模式匹配(包括求next和nextval的值)

(5) 测试数据:包括正确的输入及其输出结果和含有错误的输入及

其输出结果

顺序表的输入:0|11|22|33|44|55|66|77|88|99|

链表输入: 2 3 4 5 6 7 8 9

二, 概 要 设 计

1, 定 义

定义顺序表的结构体 typedef int ElemType; typedef struct

//定义顺序表结构体

{ElemType data[MAXSIZE];

int length;

}SqList;

定义链表的结点结构

typedef struct node /*定义单链表结点结构类型*/ {

int data; /*结点的数据域*/ struct node *next; /*结点的指针域*/ }linklist;

定义字符串的数组结构

int IndexBF(char s[],char t[],int pos) {int i,j,m,n; i=pos-1;j=0; m=strlen(s);

n=strlen(t);

2,主流程图

主菜单界面 选择:顺序表;链表;串;离开 顺序表操作 链表操作 串操作 创建 插入 查找 删除 输出 创建 插入 删除 合并 创建主串 创建子串 求next 求nextval 结束

3,各模块之间的层次关系

(1)

第一层为主界面函数,

第二层为顺序表界面函数、链表界面函数、模式匹配界面函数 第三层为顺序表子函数、链表子函数、模式匹配子函数

(2)主界面函数调用的函数有sqlistfuc()、linklistfuc()、indexfuc()

顺序表界面调用的函数有creatsq()、listinsert()、listdelete()、mergelist()

链表界面调用的函数有creat()、insert()、delete()、search()、、mergelink()、

模式匹配界面调用的函数有KMP(),GetNext(),GetNextval

creatstring()、

三,详细设计(见附录) 四、调试分析

1、调试过程中遇到的问题是如何解决的以及对设计与实现的讨论和分析

(1)一开始在在调试程序时遇到了内存错误,最终通过网上查资料找到了出错的原因:在建立对头指针和队尾指针时没有对指针进行初始化,即没有为指针动态分配空间。

(2指针变量没有初始化。定义一个指针变量,C编译系统即为它开辟了一个存储空间,如果不进行初始化,则存放的是一个随机地址,

联系客服:779662525#qq.com(#替换为@)