北科大--数据结构上机实验报告.doc

北科大--数据结构上机实验报告.doc

ID:59340488

大小:226.50 KB

页数:39页

时间:2020-10-31

北科大--数据结构上机实验报告.doc_第1页
北科大--数据结构上机实验报告.doc_第2页
北科大--数据结构上机实验报告.doc_第3页
北科大--数据结构上机实验报告.doc_第4页
北科大--数据结构上机实验报告.doc_第5页
资源描述:

《北科大--数据结构上机实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、北京科技大学计算机与通信工程学院实验报告实验名称:数据结构上机实验学生姓名:专业:计算机科学与技术班级:学号:指导教师:实验成绩:________________________________实验地点:实验时间:2015年____6___月一、实验目的与实验要求1实验目的(1)加深对常用数据结构和算法设计基本思路、思考方法及其适用场合的理解,并能运用于解决实际问题;(2)能根据特定问题需求,分析建立计算模型(包括逻辑结构和物理结构)、设计算法和程序,并在设计中综合考虑多种因素,对结果的有效性进行分析;(3)训练分析问题、解决问题的能力以及自主学习与程序

2、设计实践能力;(4)形成将非数值型问题抽象为计算模型到算法设计、程序实现、结果有效性分析的能力。2实验要求(1)由于在有限的实验课内学时难以较好完成所有实验内容,因此要求在实验课前自主完成部分实验或实验的部分内容;(2)对于每个实验都要针对问题进行分析,设计出有效的数据结构、算法和程序,对实现结果的正确性进行测试,给出测试用例和结果,分析算法的时间复杂度、空间复杂度、有效性和不足,在算法设计和实现过程中体现创新意识,并能综合考虑时空权衡、用户的友好性、程序的模块化和扩展性等;(3)完成的每个实验需要在实验课内经指导教师现场检查、查看程序代码,回答指导教师

3、提出的问题,以确认实验实际完成的质量;(4)在实验报告中体现问题分析、算法思路、算法描述、程序实现和验证、算法和结果的有效性分析。二、实验设备(环境)及要求Win7、C语言、Dev-C++三、实验内容、步骤与结果分析1实验1:链表的应用1.1实验内容输入数据(设为整型)建立单链表,并求相邻两节点data值之和为最大的第一节点。1.2主要步骤1.2.1问题分析与算法思路①采用单链表结构。②新建链表:每输入一个整数数据,建立一个新节点。循环操作直到输入结束符结束输入。③利用一个调用函数求两节点data值之和为最大的第一节点:假设,设一个int类型的变量s=0

4、,读取链表中第一个节点的数据以及它的第二个节点的数据,并计算它们之和a,再计算第二个节点数据和第三个节点数据之和b,如果a>b,则s=a;反之,则s=b。利用if语句和while语句实现。④每当输入一个数据,程序会判断输入的时候输入的数据是否是整数,如果不是整数,要求重新输入。1.2.2算法描述typedefintdatatype;//设当前数据元素为整型typedefstructnode//节点类型{datatypedata;//节点的数据域structnode*next;//节点的后继指针域}Linknode,*Link;LinkCreatelist

5、()//创建单链表的算法{inta;LinkH,P,r;//H,P,r分别为表头,新节点和表尾节点指针H=(Link)malloc(sizeof(Linknode));//建立头节点r=H;scanf(“%d”,&a);//输入一个数据while(a!=0){P=(Link)malloc(sizeof(Linknode));//申请新节点P->data=a;//存入数据r->next=P;//新节点链入表尾r=P;scanf(“%d”,&a);//输入下一个数据}r->next=NULL;//将尾节点的指针域置空return(H);//返回已创建的头节点

6、}LinkAdjmax(LinkH)//求链表中相邻两节点data值之和为最大的第一节点的指针的算法{Linkp,p1,q;inti,j;p=p1=H->next;if(p1==NULL)return(p1);//表空返回q=p->next;if(q==NULL)return(p1);//表长=1时返回i=p->data+q->data;//相邻两节点data值之和while(q->next){p=q;q=q->next;//取下一对相邻节点的指针j=p->data+q->data;if(j>i){p1=p;i=j;//取和为最大的第一节点指针}}ret

7、urn(p1);}1.2.3程序实现#include#includetypedefintdatatype;//设当前数据元素为整型typedefstructnode//节点类型{datatypedata;//节点的数据域structnode*next;//节点的后继指针域}Linknode,*Link;//linknode为节点说明符,link为节点指针说明符LinkCreatelist()//创建单链表的算法{inta,c;floatb;LinkH,P,r;//H,P,r分别为表头,新节点和表尾节点指针H=(Lin

8、k)malloc(sizeof(Linknode));//建立头节点r=H;do

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

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

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