欢迎来到天天文库
浏览记录
ID:61418621
大小:56.00 KB
页数:16页
时间:2021-01-28
《2010级数据结构实验指导书.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《数据结构》实验指导书计算机学院数据结构课程组2007-9前言 计算机编程中加工处理的对象是数据,而数据具有一定的组织结构,所以学习计算机编程仅仅了解计算机语言是不够的,还必须掌握数据的组织、存储和运算的一般方法,这便是数据结构课程中所研究的内容,也是我们编写计算机程序的重要基础,由于它对计算机学科起到承前启后的作用,因此本课程被列为计算机等相关专业最重要的专业基础课;同时数据结构是计算机专业教学的一门核心课程。计算机各领域都要用到各种数据结构,而且要从事计算机科学与技术工作,尤其是计算机领域的软件开发工作,必须具备较强
2、的数据结构基础。 数据结构课程内容丰富、学习量大,实践性强;隐含在各部分内容中的方法和技术多;算法设计具有动态性和抽象性等特点,看懂听明白与掌握会应用之间有相当大的一段距离。所以学生必须多实践才能进一步加深对课程的理解,理解和掌握算法设计所需的方法和技术,为整个专业学习打下良好的基础。实验一线性表的基本操作及其应用一、实验目的1、帮助读者复习C++语言程序设计中的知识。2、熟悉线性表的逻辑结构。3、熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉链表的操作为侧重点。二、实验内容本次实验提供3个题目,每个题目都标有难度系
3、数,*越多难度越大,学生可以根据自己的情况任选一个!题目一:单链表的基本操作(*)[问题描述]实现带头结点的单链表的建立、求长度,取元素、修改元素、插入、删除等单链表的基本操作。[基本要求](1)依次从键盘读入数据,建立带头结点的单链表;(2)输出单链表中的数据元素(3)求单链表的长度;(4)根据指定条件能够取元素和修改元素;(5)实现在指定位置插入和删除元素的功能。[测试数据]由学生任意指定。题目二:约瑟夫环(**)[问题描述] 约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人
4、持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。[基本要求] 利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。[测试数据]由学生任意指定。 如:m的初值为20;n的值为7;密码:3,1,7,2,4,8,4;(正确的输出结果应为6,1,4,7,2,3,5)。(报告上要求写出多批数据测试结果
5、)[实现提示] 程序运行后首先要求用户输入初始报数上限值m,人数n,(设n≤30)。然后输入各人的密码。[选作内容] 向上述程序中添加在顺序结构上实现的部分。题目三:多项式的表示及相加(***)[问题描述]设计一个算法,以实现一元稀疏多项式的加法运算。[基本要求](1)输入并建立多项式;(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,……,cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列;(3)多项式a和b相加,建立多项式a+b。[测试数据]由学生任意指定。[实现提
6、示] 用带表头结点的单链表存储多项式。[选作内容] 多项式a和b相减,建立多项式a-b。三、实验前的准备工作1、掌握线性表的逻辑结构。2、掌握线性表的链式存储结构。3、熟练掌握线性表的插入、删除等操作。四、实验报告要求1、实验报告要按照实验报告格式规范书写。2、实验上要写出多批测试数据的运行结果。3、结合运行结果,对程序进行分析。实验二栈和队列的基本操作及其应用一、实验目的1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际中灵活应用。2、掌握栈和队列的特点,即后进先出和先进先出的原则。3、掌握栈和队列的基本运算,如:
7、入栈与出栈,入队与出队等运算在顺序存储结构和链式存储结构上的实现。二、实验内容本次实验提供2个题目,每个题目都标有难度系数,*越多难度越大,学生可以根据自己的情况任选一个!题目一:回文判断(*)[问题描述]对于一个从键盘输入的字符串,判断其是否为回文。回文即正反序相同。如“abba”是回文,而“abab”不是回文。[基本要求](1)数据从键盘读入;(2)输出要判断的字符串;(3)利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Yes”,否则输出“No”。[测试数据]由学生任意指定。题目二:商品货架管理(**)[问题
8、描述]商店货架以栈的方式摆放商品。生产日期越近的越靠近栈底,出货时从栈顶取货。一天营业结束,如果货架不满,则需上货。入货直接将商品摆放到货架上,则会使生产日期越近的商品越靠近栈顶。这样就需要倒货架,使生产日期越近的越靠近栈底。[基本要求]设计一个算法,保证每一次上货后始终保持
此文档下载收益归作者所有