数据结构实验指导书范本.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 PAGE \* Arabic 4 页 第一部分 课程概述 数据结构是计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且已成为其它立功专业的热门选修课。数据结构实验可以使学生对数据结构课程所教授的内容通过实验环节加以实践,提高学生的程序设计、编写及调试能力,是一门基础的实验课程。 第二部分 实验要求 通过实验,学生对常用数据结构的基本概念及其不同的实现方法的理论得到进一步的掌握,并对在不同存储结构上实现不同的运算方式和技巧有所体会,从而使学生更好的巩固和掌握所学的内容。 学生应完成教师布置的实验任务,得出正确的实验结果,实验后完成实验报告或相关的实验记录。 第三部分 实验内容 实验一 线性表的应用 实验目的 1、熟悉C语言的上机环境,掌握C语言编程工具。 2、掌握线性结构的定义、组织形式、结构特征和类型说明以及在这两种存储方式下实现的插入、删除和按值查找的算法。 3、循环链表、双(循环)链表的结构特点和在其上施加的插入、删除等操作。 实验内容(两者任选一题) 1、Joseph问题:设编号为1,2,…,n的n个人围坐一圈,约定编号为k(1=k=n)的人从1开始报数,数到m的那个人出列,他的下一位又从1开始报数,数到m的那个人又出列,…依次类推,直到所有的人出列为止,因此产生一个出列编号的序列。 提示:应创建循环链表来存储数据,链表结点的数据域用来存储该结点的编号,出列结点应从链表中删除,直到最后一个结点为止。 2、一元多项式的相加:选用适当的线性表结构存储一元多项式,并实现两个多项式相加,并将结果按照数学公式格式输出。多项式的数据应由键盘输入。 思考题 1、在程序设计中,分析顺序表和链表的不同的应用场合。 2、如何改进线性表插入、删除算法的效率? 四、易犯错误及分析 1、在没有定义结构体的前提下,就使用结构体变量组成链表的结点,应注意基本数据结构的定义。 2、在进行表结点插入或删除时,指针的错误使用,特别需要注意边界条件的控制。 实验二 二叉树的存储与应用 实验目的 掌握二叉树的二叉链表存储方式、结点结构和类型定义。 二叉树的上的基本运算及应用。 栈和队列的实际应用。 实验内容(两者任选一题) 1、非递归中序遍历二叉树:要求从键盘输入二叉树各结点的值,并使用二叉链表来存储二叉树;使用非递归算法遍历二叉树,在屏幕上打印出二叉树中序遍历序列。 提示:在非递归方法中,可采用堆栈的入栈方法存储当前访问结点的父结点,采用出栈的方法获得当前访问结点的父结点。 2、哈夫曼编码/译码问题:已知某密码中共含有5个字符A、B、C、D、E,它们出现的频率依次是0.1、0.3、0.4、0.15和0.05。要求采用哈夫曼算法,求出5个字符的最优编码;反之,当用户给出某个0/1序列,解码出相应的字符序列;如有错误输入的0/1序列,要打印出错提示信息。 思考题 1、二叉链表应如何建立? 2、在非递归遍历算法中,应使用以前学过的哪些数据结构? 四、易犯错误及分析 1、堆栈和队列是操作受到限制的线性表,它们具有各自的特点。堆栈的特点是后进先出(LIFO),而队列的特点是先进先出(FIFO)。在对它们进行频繁操作的时候,要注意它们进出栈或进出队的次序。 2、对堆栈或队列执行操作时特别需要注意边界条件的控制。 3、在二叉链表的存储中,不能随意交换左右孩子结点的顺序。 实验三 图的存储与应用 实验目的 掌握图的两种存储结构(邻接矩阵和邻接表)的表示方法; 图的基本运算及应用。 实验内容 拓扑排序:已知有九门课程,依次编号为C0至C8,在图一中给出了给出了各门课程之间先后关系。例如:C0是C2和C6的前序课程,而在选修C8之前,必须已经选修过C3和C7。要求存储该拓扑结构图,当用户从键盘输入任意课程的编号时,可打印出该课程的所有的前序课程。 图一 九门课程的拓扑结构图 思考题 如何用图来存储图形或网络? 分析图中多种存储方法的使用场合。 在拓扑排序算法中,需要用到那些基本的数据结构? 四、易犯错误及分析 1、在使用二维数组存储邻接矩阵时,在循环时注意边界条件的控制。 2、在使用邻接表存储图的时候,注意指针数组的使用。 实验四 学生成绩管理程序的设计 实验目的 综合以前所学过的数据组织方式和存储方法,解决实际问题,并掌握各种查找排序算法的基本思想及存储、运算的实现,达到综合设计的目的。 实验内容 (1)记录项的设计:学生成绩信息应包含学生姓名、学号和至少三门的百分制成绩。学生需根据实际问题,选择合适的数据结构来存储数据。 (2)学生成绩的查找:选择并实现最有效地查找“人名—成绩”或“学号—成绩”的查找算法。 (3)实现对学生成绩的求和,求平均值及排序(升序或降序)等功能,并对选择的算法作出简单分析。 思考题 1、在实验中使用的

文档评论(0)

ccccccxx + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体临沂冉通信息技术有限公司
IP属地山东
统一社会信用代码/组织机构代码
91371300MA9576790T

1亿VIP精品文档

相关文档