数据结构作业题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2018-2019第一学期数据结构作业题数据结构作业共6次,30个题目,训练的目标包括:

目标1. 理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。

目标2. 在掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。

目标3. 能够选择合适的数据结构和方法进行问题求解。

本课程支撑专业培养计划中毕业要求1-3(占该指标点达成度的40%)、毕业要求2-1(占该指标点达成度的30%;)和毕业要求2-2(占该指标点达成度的10%)指标点1-3:能够将工程基础知识用于软件领域复杂工程问题进行求解. 0.4

指标点2-1:能够对软件领域复杂工程问题进行识别和有效分解。0.3

指标点2-2:能够对分解后的软件领域复杂工程问题进行表达与建模。0.1

第一次作业(第一章题目)

1 试仿照三元组的抽象数据类型写出抽象数据类型复数的定义及操作(加法、减法、乘法、除法、求实部、求虚部、构造函数、析构函数)。(目标1)

2 试写一算法,自大至小依次输出顺序读入的三个整数X、Y和Z的值。(目标1)

第二次作业(第二章题目)

3 描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。(目标1)

4 在什么情况下用顺序表比链表好?(目标1)

5 设顺序表va中的数据元素递增有序,试写一个算法,将x插入到顺序表的适当位置上,以保持该表的有序性。(目标1)

6 试写一算法,在无头结点的动态单链表上实现线性表操作insert(L, i,b),并和在带头结点的动态单链表上实现相同操作的算法进行比较。(目标1)

7 试写一算法,对单链表实现就地逆序。(目标2)

8 已知由一个线性链表表示的线性表中含有三类字符的数据元素(比如:字母字符、数字字符和其他字符),试编写算法将该线性表分割为三个循环链表,其中每个循环链表表示的线性表中均只含一类字符。(目标3)

第三次作业(第三章题目)

9 简述栈、队列和线性表的差别。(目标1)

10 试写一个判别表达式中开、闭括号是否配对出现的算法。(目标2)

11 假设将循环队列定义为:以域变量rear和length分别指示循环队列中队尾元素的位置和内含元素的个数。试给出此循环队列的队满条件,并写出相应的入队列和出队列的算法(出队列的算法中要返回对头元素)。(目标3)

第四次作业(第六章题目)

12 一颗度为2的树与一颗二叉树有何区别?(目标1)

13 已知一颗含有n个结点的树中,只有都为k的分支结点和度为0的叶子结点,试求该树含有的叶子结点的数目。(目标1)

14 画出和下列已知序列对应的树T:

树的先根次序访问序列为GFKDAIEBCHJ;

树的后根次序访问序列为DIAEKFCJHBG. (目标1)

15 证明:在结点数多于1的哈夫曼树中不存在度为1的结点。(目标2)

16 试利用栈的基本操作写出先序遍历的非递归形式的算法。(目标2)

17试利用栈的基本操作写出后序遍历的非递归形式的算法。(目标2)

18 编写算法判断给定二叉树是否为完全二叉树。(目标3)

19 一颗二叉树的繁茂度定义为各层结点树的最大值与树的高度的乘积,试写一算法,求二叉树的繁茂度。(目标3)

20 试以孩子-兄弟链表表示的树编写计算树的深度的算法。(目标3)

第五次作业(第七章题目)

21 已知如下图所示的有向图,请给出该图的(1)每个顶点的入/处度;(2)邻接矩阵;(3)邻接表;(4)逆邻接表;(5)强连通分量。(目标1)

22 给定如下的无向带权图,(1)写出它的邻接矩阵,并按普里姆算法求其最小生成树;(2)写出它的邻接表,并按克鲁斯卡尔算法求其最小生成树。(目标2)

23 试列出下图中全部可能的拓扑有序序列,并指出应用7.5.1节中算法Topological Sort求得的是哪一个序列(注意应先确定其存储结构)。(目标2)

24 编写算法,由依次输入的顶点数目、弧的数目、各顶点信息和各条弧的信息建立有向图的邻接表。(目标2)

25 试写一个求有向图G中所有简单回路的算法。(目标3)

第六次作业(第九章、第十章题目)

26试分别画出在线性表(a,b,c,d,e,f,g)中进行折半查找,以查关键字等于e,f和g 的过程。(目标1)

27 B+树和B-树的主要差别是什么?(目标1)

28 假设哈希表长为m,哈希函数为H(x),用链地址法处理冲突,试编写输入一组关键

字并建造哈希表的算法。(目标2)

29 以关键字序列(503,087,512,061,908,170,897,275,653,426)为例,手工制鞋以下排序算法,写出每一趟排序结束时的关键字状态:

(1)直接插入排序(2)希尔排序(增量d[1]=5)(3)快速排序(4)堆排序(5)归并排序(6)基数排序(目标1)

30荷兰国旗问题:设有一个仅由红、白、蓝三种颜色的条块组成的条块序列,试编写一个时间复杂度为O(n)的算法,使得这些条块按红、白、蓝的顺序排好,即排成荷兰国旗图案。(目标2)

相关文档
最新文档