《数据结构》上机实验指导.doc

《数据结构》上机实验指导.doc

ID:61419786

大小:101.00 KB

页数:29页

时间:2021-01-28

《数据结构》上机实验指导.doc_第1页
《数据结构》上机实验指导.doc_第2页
《数据结构》上机实验指导.doc_第3页
《数据结构》上机实验指导.doc_第4页
《数据结构》上机实验指导.doc_第5页
资源描述:

《《数据结构》上机实验指导.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《数据结构》实验指导书计算机综合实验中心目录《数据结构》上机实验的目的和要求1实验一、单链表的插入和删除2实验二、二叉树操作6实验三、图的遍历操作10实验四、排序17实验五、查找23《数据结构》上机实验的目的和要求通过上机实验加深对课程内容的理解,增加感性认识,提高软件设计、编写及调试程序的能力。要求所编的程序能正确运行,并提交实验报告。实验报告的基本要求为:1、需求分析:陈述程序设计的任务,强调程序要做什么,明确规定:(1)输入的形式和输出值的范围;(2)输出的形式;(3)程序所能达到的功能;

2、(4)测试数据:包括正确的输入输出结果和错误的输入及输出结果。2、概要设计:说明用到的数据结构定义、主程序的流程及各程序模块之间的调用关系。3、详细设计:提交带注释的源程序或者用伪代码写出每个操作所涉及的算法。4、调试分析:(1)调试过程中所遇到的问题及解决方法;(2)算法的时空分析;(3)经验与体会。5、用户使用说明:说明如何使用你的程序,详细列出每一步操作步骤。6、测试结果:列出对于给定的输入所产生的输出结果。若有可能,测试随输入规模的增长所用算法的实际运行时间的变化。实验一、单链表的插入和

3、删除一、目的:了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。二、要求:建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。三、示例程序:#include"stdio.h"#include"string.h"#include"stdlib.h"#include"ctype.h"typedefstructnode//定义结点{chardata[10];//结点的数据域为字符串structnode*nex

4、t;//结点的指针域}ListNode;typedefListNode*LinkList;//自定义LinkList单链表类型LinkListCreatListR1(void);//函数,用尾插入法建立带头结点的单链表ListNode*LocateNode(LinkListhead,char*key);//函数,按值查找结点voidDeleteList(LinkListhead,char*key);//函数,删除指定值的结点voidprintlist(LinkListhead);//函数,打印链

5、表中的所有值voidDeleteAll(LinkListhead)//函数,删除所有结点,释放内存//==========主函数==============voidmain(){char*ch,*num;LinkListhead;head=CreatListR1();//用尾插入法建立单链表,返回头指针printlist(head);//遍历链表输出其值printf("Deletenode(y/n):");//输入“y”或“n”去选择是否删除结点scanf("%s",num);if(strcmp

6、(num,"y")==0

7、

8、strcmp(num,"Y")==0){printf("PleaseinputDelete_data:");scanf("%s",ch);//输入要删除的字符串DeleteList(head,ch);printlist(head);}DeleteAll(head);//删除所有结点,释放内存}//==========用尾插入法建立带头结点的单链表===========LinkListCreatListR1(void){char*ch;LinkListhead=(Lin

9、kList)malloc(sizeof(ListNode));//生成头结点ListNode*s,*r,*pp;r=head;r->next=NULL;printf("Input#toend");//输入“#”代表输入结束printf("PleaseinputNode_data:");scanf("%s",ch);//输入各结点的字符串while(strcmp(ch,"#")!=0){pp=LocateNode(head,ch);//按值查找结点,返回结点指针if(pp==NULL){//没有重

10、复的字符串,插入到链表中s=(ListNode*)malloc(sizeof(ListNode));strcpy(s->data,ch);r->next=s;r=s;r->next=NULL;}printf("Input#toend");printf("PleaseinputNode_data:");scanf("%s",ch);}returnhead;//返回头指针}//==========按值查找结点,找到则返回该结点的位置,否则返回NULL==========ListNode*Locate

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。