《数据结构》基本操作指导参考模板范本.doc
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《数据结构》基本操作指导参考模板范本.doc》由用户(林田)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 基本 操作 指导 参考 模板 范本
- 资源描述:
-
1、目 录指导一、单链表的操作 - 2指导二、栈及其应用 - 10指导三、串的基本操作 - 16指导四、二叉树的基本操作 - 21指导五、图的存储和遍历 - 31指导六、查 找 - 41指导七、排 序 - 49指导一、单链表的操作一、指导目的1、掌握线性表的链式存储结构。2、掌握利用链式存储结构实现线性表的基本操作。3、掌握链式存储结构中的算法实现。二、指导内容1、建立带头结点的单链表,并输出该单链表。2、实现带头结点的单链表上的插入、删除、查找、修改操作。三、操作指导1、定义单链表的结点结构单链表的结点结构可为一个结构体类型(slnodetype),其成员是数据域和指针域,数据域可以是整数。2、
2、模块划分和程序控制流程根据实验要完成的各功能,设置初始化、建立单链表、输出单链表、插入、删除、查找、修改和主函数8个模块,对于要完成的各功能,采用适当的人机界面,用循环和分支结构构成菜单进行选择。3、初始化模块int initiate(slnodetype *h)该模块中产生一个只有头结点的空单链表,用指针h作为函数的参数返回,因为h是指针变参,所以在函数的参数位置要以二级指针出现。在函数里,申请一个头结点空间。4、建立单链表模块int createlink(slnodetype *h)该模块中建立有若干个结点的单链表,用循环控制输入若干个整数,申请相应的结点空间,以输入的整数作为结点中的数据
3、,依次链接到初始只有头结点的单链表h中,可以把输入0作为建立链表的结束。5、输出单链表模块void display(slnodetype *h)对于传入的单链表h,依次输出单链表中的结点(数据)。 6、插入结点模块int inserti(slnodetype *h)设在第i个结点前插入数据为data的结点。在该函数模块中输入i和数据data,对于传入的单链表h,先查找是否存在插入的位置(单链表h中至少要有i-1个结点),若不存在插入位置,则不做任何操作;若存在插入位置,则申请一个结点,其数据为data,挂在第i-1个结点的后面。7、删除结点模块int delete(slnodetype *h)
4、在该函数模块中,首先可以调用输出模块输出传入的单链表h,以便选择要删除的结点,然后输入要删除结点的数据data,再查找是否存在要删除的结点,若不存在要删除的结点,则显示相应的信息;若存在要删除的结点,则删除该结点(包括删除该结点空间)。8、查找模块int search(slnodetype *h)在该函数模块中,首先可以调用输出模块输出传入的单链表h,以便选择要查找的结点,然后输入要查找结点的数据data,再查找该结点是否存在,若不存在要查找的结点,则显示相应的信息;若存在要查找的结点,也显示相应的信息。 9、修改模块int modify(slnodetype *h)在该函数模块中,首先可以调
5、用输出模块输出传入的单链表h,以便选择要修改的结点,然后输入要修改结点的数据data,再查找该结点是否存在,若不存在要查找的结点,则显示相应的信息;若存在要查找的结点,则显示原结点的数据,再提示输入新的数据,输入新的数据后,可以再调用输出模块输出修改结点数据后的单链表h,以便查看修改后的单链表h中的数据。10、主函数main()主函数中定义指向单链表的指针等变量,首先调用初始化操作initiate( ),考虑人机界面,进入如下操作菜单的循环控制结构: = menu = 1- create 2- display 3- insert 4- delete 5- search 6- modify 0-
6、 exit choose the number between 0 to 6:对于要进行的操作,进入接受选择的循环控制(对于不合法的选择,重新提示选择),对与合法的选择,退出接受选择的循环控制,进入多分支结构,以执行相应的功能,执行完毕后回到操作菜单的循环控制中,依然显示菜单,提示选择。当输入0(选择exit),则程序实行结束。四、算法实现#include stdio.h#include alloc.h#include stdlib.htypedef struct slnodeint data; struct slnode *next;slnodetype;int initiate(slnod
7、etype *h)if(*h=(slnodetype *)malloc(sizeof(slnodetype)=NULL) return 0; (*h)-next=NULL; return 1;int createlink(slnodetype *h)int i=1,data;slnodetype *p,*s; printf(n create link n); p=h; printf( NO: %d: ,i); scanf(%d,&data); while(data!=0) s=(slnodetype *)malloc(sizeof(slnodetype); s-data=data;s-next
8、=NULL; p-next=s;p=s; printf( NO: %d: ,+i); scanf(%d,&data); void display(slnodetype *h)slnodetype *p; printf(n linklist:n); p=h-next; while(p) printf(%5d,p-data); p=p-next; int inserti(slnodetype *h)slnodetype *s,*p;int i,data,j=0; printf(n input i: );scanf(%d,&i); printf( input data: );scanf(%d,&da
9、ta); p=h; while(p!=NULL&jnext; j+; if(p!=NULL) s=(slnodetype *)malloc(sizeof(slnodetype); s-data=data; s-next=p-next; p-next=s; int delete(slnodetype *h)slnodetype *p,*q; int data; display(h); printf(n input data: );scanf(%d,&data); q=h;p=h-next; while(p!=NULL&p-data!=data) q=p; p=p-next; if(p=NULL)
10、 printf(n data %d nod found!,data); else q-next=p-next; free(p); int search(slnodetype *h)slnodetype *p,*q; int data; display(h); printf(n input data: );scanf(%d,&data); q=h;p=h-next; while(p!=NULL&p-data!=data) q=p; p=p-next; if(p=NULL) printf(n data %d nod found!,data); else printf(n data find!);i
11、nt modify(slnodetype *h)slnodetype *p,*q; int data; display(h); printf(n input data: );scanf(%d,&data); q=h;p=h-next; while(p!=NULL&p-data!=data) q=p; p=p-next; if(p=NULL) printf(n data %d nod found!,data); else printf(n old data: %d,p-data); printf(n new data: ); scanf(%d,&(p-data); display(h); mai
12、n()slnodetype *la;char ch; initiate(&la);clrscr(); ch=10; while(ch!=48) clrscr(); textcolor(13);gotoxy(28,3);cprintf(=); textcolor(14);gotoxy(38,3);cprintf( menu ); textcolor(13);gotoxy(44,3);cprintf(=); textcolor(12);gotoxy(24,5);cprintf(1-); textcolor(10);gotoxy(29,5);cprintf(create); textcolor(12
13、);gotoxy(46,5);cprintf(2-); textcolor(10);gotoxy(51,5);cprintf(display); textcolor(12);gotoxy(24,7);cprintf(3-); textcolor(10);gotoxy(29,7);cprintf(insert); textcolor(12);gotoxy(46,7);cprintf(4-); textcolor(10);gotoxy(51,7);cprintf(delete); textcolor(12);gotoxy(24,9);cprintf(5-); textcolor(10);gotox
14、y(29,9);cprintf(search); textcolor(12);gotoxy(46,9);cprintf(6-); textcolor(10);gotoxy(51,9);cprintf(modify); textcolor(12);gotoxy(36,11);cprintf(0-); textcolor(10);gotoxy(41,11);cprintf(exit); ch=10; while(ch64) textcolor(11);gotoxy(16,13);cprintf(choose the number between 0 to 6: ); textcolor(14);c
15、h=getche(); switch(ch) case 1: createlink(la);break; case 2: display(la);break; case 3: inserti(la);break; case 4: delete(la);break; case 5: search(la);break; case 6: modify(la);break; getch(); 五、运行和测试结果 = menu = 1- create 2- display 3- insert 4- delete 5- search 6- modify 0- exit choose the number
展开阅读全文