题目1线性表的链式表示和实现1报告

上传人:tia****nde 文档编号:36889304 上传时间:2018-04-04 格式:DOC 页数:27 大小:242KB
返回 下载 相关 举报
题目1线性表的链式表示和实现1报告_第1页
第1页 / 共27页
题目1线性表的链式表示和实现1报告_第2页
第2页 / 共27页
题目1线性表的链式表示和实现1报告_第3页
第3页 / 共27页
题目1线性表的链式表示和实现1报告_第4页
第4页 / 共27页
题目1线性表的链式表示和实现1报告_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《题目1线性表的链式表示和实现1报告》由会员分享,可在线阅读,更多相关《题目1线性表的链式表示和实现1报告(27页珍藏版)》请在金锄头文库上搜索。

1、理学院 课程设计说明书课 程 名 称: 数据结构与算法 A 设计实践课 程 代 码: 6015059 题 目 一: 线性表的链式表示和实现 1 年级/专业/班: 2013/信息与计算科学/2 学 生 姓 名: 刘凯 学 号: 3120130902212 开 始 时 间: 2015 年 12 月 28 日完 成 时 间: 2016 年 1 月 10 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总 分(100)指导教师签名: 年 月 日数据结构与算法 A 设计实践任务书学院名称: 理学院 课程代码:_ 6015059_专 业: 信科 年 级:

2、 2013 一、设计题目 线性表的链式表示和实现 1(限最多 1 人完成)二、主要内容实现一些线性表的基本操作。三、具体要求及提交的材料(1)动态地建立单链表,实现插入元素、删除元素、查询、求表长度;(2)建两个有序的单链表 LA 和 LB,实现合并成 LC,要求分 LC 中有和无重复值两种情况的实现;(3)求两链 LA 和 LB 两链元素的交集 LD。(4)静态链表的实现:使用数组实现单向链表的建立、插入元素、删除元素。测试数据及测试结果请在上交的资料中写明;必须上机调试通过 按数据结构课程设计大纲中的要求完成课程设计报告格式。设计结束后,每个学生必须上交的材料有:1 课程设计报告打印稿一份

3、 2课程设计的源代码电子文档一份四、主要技术路线提示合并采用教材相关的现成算法。注意各种算法的性能比较。五、进度安排共计两周时间,建议进度安排如下:1. 选题,应该在上机实验之前完成 2. 需求分析、概要设计可分配 4 学时完成 3. 详细设计可分配 4 学时 4. 调试和分析可分配 10 学时 5. 学时的机动,可提前安排部分提前结束任务的学生答辩六、 推荐参考资料1.冯博琴 等编著, 软件技术基础 (修改版) ,西安交通大学出版社,1997 2.严蔚敏 等著, 数据结构 ,清华大学出版社,2003 3.李芸芳 等著, 软件技术基础 (第二版) ,清华大学出版社,2000 4.徐孝凯 等著,

4、 数据结构(C 语言描述) ,清华大学出版社,2004指导教师 签名日期 年 月 日系 主 任 审核日期 年 月 日目录摘要 .- 3 -1 引言 .- 4 -1.1 问题的提出.- 4 -1.2 C/C+语言 .- 4 -1.3 C/C+语言发展过程 .- 5 -1.4 任务与分析.- 5 -2 设计方案 .- 6 -2.1 步骤 .- 6 -2.2 设计流程图 .- 6 -3 程序演示 .- 7 -3.1 编译 .- 7 -3.2 运行结果 .- 7 -4 结论 .- 12 -参考资料: .- 13 -附录:源代码 .- 14 -摘要线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物

5、理位置上也相邻,因此可以随机存取表中任一元素,他的存储位置可用一个简单、直观的公式来表示。然而,从另一方面来看,这个特点也铸成了这种存储结构的弱点:在作插入或删除操作时,需要移动大量的元素。线性表的链式存储结构,不要求逻辑上相邻的元素在物理位置上也相邻,因此它没有顺序存储结构所具有的弱点。关键词:关键词:链式存储,插入,删除1 引言 1.1 问题的提出问题的提出线性表的链式存储结构,不要求逻辑上相邻的元素在物理位置上也相邻,因此它没有顺序存储结构所具有的弱点,但是怎么表示和实现一些线性表的基本操作呢?1.2 C/C+语言语言C 语言是在 70 年代初问世的。一九七八年由美国电话电报公司(AT

6、before type int。缺少分号。如下图:修改之后,在编译一次。没有错误。如下图:连接没有问题。如下图:3.2 运行结果运行结果菜单如图 1:图 1动态地建立单链表,实现插入元素、删除元素、查询、求表长度如图 2 所示:图 2建两个有序的单链表 LA 和 LB,实现合并成 LC,要求分 LC 中有和无重复值两种情 况的实现如图 3 所示:图 3求两链 LA 和 LB 两链元素的交集 LD 如图 4 所示:图 4静态链表的实现:使用数组实现单向链表的建立、插入元素、删除元素如图 5 所 示:图 54 结论单链表作为一种十分重要的线性表,在日常生活中有着十分重要的作用,在数据结构这门课程中

7、,占着很重的地位,这就要求我们认真学习体会它的精髓,熟练掌握它的表示与应用。在日常生活中要注意锻炼自己的逻辑思维和动手动脑的实践能力,才能在日后的计算机学习中取得长足的进步。这次课程设计,体现出自己单独设计程序的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情。从中发现自己平时学习的不足和薄弱环节,从而加以弥补。通过这次课程设计,我对这种写程序的方法有了一定的了解,自己有一个很明确的思路去写程序,提高了效率。老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课

8、程设计。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。由于自己的设计能力有限,在设计过程中难免出现错误,恳请老师多多指教。参考资料:5. 冯博琴 等编著, 软件技术基础 (修改版) ,西安交通大学出版社,1997 6. 严蔚敏 等著, 数据结构 ,清华大学出版社,2003 7. 李芸芳 等著, 软件技术基础 (第二版) ,清华大学出版社,2000 8. 徐孝凯 等著, 数据结构(C 语言描述) ,清华大学出版社,2004附录:源代码附录:源代码/ 线性表的链式表示和实现 1.cpp : 定义控制台应用程序的入口点。 /#include “stdafx.h“ #in

9、clude #include #include #include using namespace std; typedef struct LNode int data;struct LNode *next;LNode, LinkList ; typedef struct Array int data; int num; Array;LNode *CreateList(LNode *Head)LNode *p,*q,*s,*t;coutp-data; if(p-datanext=NULL;q=p; else if(p-datadata) p-next=Head; Head=p; else if

10、(p-data=q-data) q-next=p; p-next=NULL; q=p; else s=Head;t=s-next;while(p-data=t-data)s=s-next;t=t-next;s-next=p;p-next=q; return Head; void PrintList (LNode *Head) LNode *pt=Head; if(pt=NULL) coutdatanext; coutch;if(ch!=Yelse Head=CreateList(Head); return Head; LNode *pnew,*pend=Head,*ps,*pe;while(p

11、end-next)pend=pend-next; coutnext=NULL; coutpnew-data; if(pnew-datadatadata) pnew-next=Head; Head=pnew; else if(pnew-data=pend-data) pend-next=pnew; pend=pnew; else ps=Head; pe=ps-next; while(pe-datadata) ps=ps-next; pe=pe-next; pnew-next=pe; ps-next=pnew; coutt;while(temp-data!=t temp=temp-next;if(

12、temp-data=t)if(temp=Head)Head=Head-next;delete temp;else if(temp-next=NULL)p-next=NULL;delete temp; else p-next=temp-next;delete temp; coutt; while(p) if(t=p-data) flag=1; coutdata next;j+; if (flag=0) coutnext;j+;coutwork; switch(work) case 1: SearchList(Head);goto label; case 2: InsertList(Head); goto label; case 3: DeleteList(Head); goto label;case 4: LengthList(Head); goto label; case 5: break; default:coutdatadata)/若为相同值排序时 将data = a-data;a = a-next; else if (a-data=b-data) c-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号