数据结构课程设计报告--演示系统 下载本文

是b

{ t=Output(l); if(t == 0) { printf(\请先建立一个顺序表!\ break; } printf(\ break; }

case 0x0033: { t=Output(l); if(t == 0) { printf(\请先建立一个顺序表!\ break; } printf(\查找元素值:\ printf(\查找序列号:\\n\ printf(\ z=getch(); //对 查找进行分类了 选a还

if(z=='a') { printf(\请输入要查找的元素值(从0号开始计数):\ scanf(\ k=LocateElem(l,x); if(k == -1) printf(\该元素在顺序表中不存在!\\n\ else printf(\所查找的元素:%d的序列是:%d\}

else if(z=='b') { printf(\请输入要查找的序列号(从0号开始计数):\ scanf(\ k=GetElem(l,x); if(k == -9999) printf(\该序列没有值!\ else printf(\第%d个元素是:%d\}

break;

}

case 0x0034: { t=Output(l); if(t == 0) { printf(\请先建立一个顺序表!\ break; } printf(\输入要插入元素的位置及其值:\ printf(\输入要插入元素的位置:\ scanf(\ printf(\输入要插入元素的值:\ scanf(\ k=Insert(l,x,i); if(k == 0) printf(\输入正确的位置!\ Output(l); break; }

case 0x0035: { t=Output(l); if(t == 0) { printf(\请先建立一个顺序表!\ break; } printf(\输入要删除的元素位置:\ scanf(\ k=Delete(l,j); if(k == 0) printf(\输入正确的位置!\ Output(l); break; }

case 0x0036: { t=Output(l); if(t == 0) { printf(\请先建立一个顺序表!\\n\ break;

} InitList(la); printf(\请输入第二个顺序表元素的个数:\ m=getche(); printf(\ m=m-'0'; CreatSqlist(la,m); Output(la); MergeList(l,la,lc); printf(\输出合并后的顺序表中的元素:\\n\ Output(lc); break; } default:break;

} printf(\继续运行吗?y/n:\\n\ xyz: key=getche(); if(key == 0x0079) flag=1; else if(key == 0x006e) flag=0; else goto sub; } }

case 2:

{int k;linklist *head; sub1:

printf(\ ***********************2.链表操作******************\\n\ printf(\ 1. 建 立 单 链 表\\n\ printf(\ 2. 查 找 单 链 表\\n\ printf(\ 3. 插 入 结 点\\n\ printf(\ 4. 删 除 结 点\\n\ printf(\ 5. 输 出 单 链 表\\n\ printf(\ 6. 退 出\\n\ printf(\请输入选择的功能:\ scanf(\ /*输入选择的功能*/ printf(\ -------------------------------\\n\

/*单链表主函数*/

/*输入选择功能*/

switch(k) { case 1:head=Linkcreat();Linkprint(head);goto sub1; /*建立单链表函数*/ case 2:Linksearch(head);goto sub1; /*建立单链表函数*/ case 3:head=Linkinsert(head);Linkprint(head);goto sub1; /*单链表结点插入函 数*/ case 4:head=Linkdelete(head);Linkprint(head);goto sub1;/*删除单链表结点

函数*/ case 5:Linkprint(head);goto sub1; /*输出单链表函数*/ default:break; } }

goto sub;

case 3:{ char s[MAXSIZE]=\ int index,*next,*nextval; int choice,j,pos=0; int m,n; m=strlen(s); n=strlen(t); next=new int[n]; GetNext(t,next); do {//显示主菜单

printf(\字符串匹配************* \\n\ cout<<\ 1-BF匹配 *\\n\ cout<<\ 2-KMP匹配 *\\n\ cout<<\ 3-查看Next[] *\\n\

cout<<\ 4-查看Nextval[] *\\n\ cout<<\ 5-显示串 *\\n\ cout<<\ 6-退出 *\\n\ cout<<\ cin>>choice; switch(choice) { case 1://BF匹配 cout<<\输入匹配起始位置:\ cin>>pos; if(pos<=m-n+1) { cout<<\主串为:\子串为:\ cout<<\的结果:\