- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》实验指导书【荐】.doc
数据结构实验课程大纲
本大纲是针对计算机科学与技术专业本科对数据结构的基本要求而编写的。
一、目的与任务
数据结构是一门实践性很强的课程,每个学生必须完成一定数量的上机作业。通过上机作业,要求在数据结构的逻辑特性和存贮表示、基本数据结构的选择和应用、算法设计及其实现等方面加深对课程基本内容的理解。同时,在程序设计方法、程序设计风格及上机操作等基本技能和科学作风方面受到比较系统的、严格的训练。提高分析问题和用计算机解决实际问题的能力。为后续课程的学习以及为应用软件特别是非数值软件的开发打下良好的理论基础和实践基础。
二、课程内容
顺序表的表示和运算(0-2学时)
链表的表示和运算(2学时)
栈的应用(2-3学时)
队列的应用(2-3学时)
二叉树的基本操作和应用(2-6学时)
图及其应用(2-6学时)
排序(4-6学时)
查找(2-4学时)
三、基本要求
逐步理解和掌握程序设计和上机操作的基本方法和技能。
理解并实现各种基本数据结构的存贮表示、运算方法及其典型应用;学会根据实际问题的要求设计算法的数据结构,并具有一定的比较和选用数据结构及算法的能力。
理解并实现常用的查找和排序的基本方法。
四、学时分配
实习学时分配表
序号 内容 学时(少) 学时(多) 1 顺序表 0 2 2 链表 2 2 3 栈的应用 2 3 4 队列的应用 2 3 5 树 2 6 6 图 2 6 7 排序 4 6 8 查找 2 4 合计 16 32
五、实验内容
注:带*的内容以及练习与思考题,可根据实际学时、专业方向特点等具体要求,做相应调整或从略。
实验一、顺序表
实验目的:
熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作。
实验要求:
了解并熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作的实现和应用。
实验内容:
编写程序实现下列的要求:
(1) 设数据元素为整数,实现这样的线性表的顺序存储表示。
(2) 键盘输入10个数据元素,利用顺序表的基本操作,建立该表。
(3) 利用顺序表的基本操作,找出表中的最大的和最小的数据元素(用于比较的数据元素为整数)。
(4) * 若数据元素为学生成绩(含姓名、成绩等字段),重新编程,实现上面的要求。要求尽可能少地修改前面的程序来得到新程序。(这里用于比较的字段为分数)
练习及思考题:
(1) 不同类型的数据元素所对应的顺序表在类型定义和操作实现上有什么异同?
(2) 顺序表的操作上有什么特点?
(3) 不固定数据元素的个数,而通过特殊数据来标记输入数据的结束,实现这样的输入操作。
实验二、链表
实验目的:
熟悉链式表的逻辑特性、存储表示方法的特点和链式表的基本操作。
实验要求:
了解并熟悉链式表的逻辑特性、存储表示方法和链式表的基本操作的实现和应用。
实验内容:
编写程序实现下列的要求:
(1) 设学生成绩表中的数据元素为学生成绩(含姓名、成绩字段),实现这样的线性表的链式存储表示。
(2) 键盘输入若干个数据元素(用特殊数据来标记输入数据的结束),利用链表的基本操作(前插或后插算法),建立学生成绩单链表。
(3) 键盘输入关键字值x,打印出表中所有关键字值=x的结点数据。(用于比较的关键字字段为分数)。
(4) 输入关键字值x,删除表中所有关键字值=x的结点。(用于比较的关键字字段为分数)。
(5) * 释放该链表(删除所有结点)。
(6) * 若要求建立的学生成绩单链表为有序表,重新编写算法和程序实现前面的要求(3)。(用于比较的字段为分数)。
练习及思考题:
(1)不同类型的数据元素所对应的链式表在类型定义和操作实现上有什么异同?
(2)有头结点的链式表,有什么特点?
实验三、栈的应用
实验目的:
熟悉栈的逻辑特性、存储表示方法和栈的基本操作。
实验要求:
了解并熟悉栈的逻辑特性、顺序和链式存储表示方法和栈的基本操作的实现和应用。
实验内容:
(1) 判断一个表达式中的括号(仅有一种括号,小、中或大括号)是否配对。编写并实现它的算法。
(2) 用不同的存储方法,求解上面的问题。
(3) * 若表达式中既有小括号,又有大括号(或中括号),且允许互相嵌套,但不能交叉,写出判断这样的表达式是否合法的算法。如 2+3*(4-{5+2}*3) 为合法;2+3*(4-{5+2 * 3} 、2+3*(4-[5+2 * 3)为不合法。
练习及思考题:
求解八皇后问题,并将它扩展到n皇后问题。
递归问题是如何利用栈来求解的。
实验四、队列的应用
实验目的:
熟悉队列的逻辑特性、存储表示方法和队列的基本操作及应用。
实验要求:
了解并熟悉队列的逻辑特性、顺序和链式存储表示方法和队列的基本操作的实现和应用。
实验内容:
迷宫问题
(1) 定义不同存储类型的队列并实现队列的基本操作。
文档评论(0)