《数据结构》应用题参考习题

《数据结构》应用题参考习题数据结构是计算机科学中的一门基础课程,它主要研究数据的组织、存储和管理方式,以及不同数据结构对算法执行效率的影响。在实际

应用中,数据结构起到了至关重要的作用。本文将介绍一些《数据结构》的应用题,并给出相应的参考习题。

一、栈的应用题

1. 符号匹配问题

问题描述:给定一个字符串,在其中包含了一些圆括号"()"、方括号"[]"和花括号"{}",判断字符中的括号是否匹配。

例题:判断字符串"{[()]()}"是否匹配。

解题思路:利用栈的先进后出特点,遍历字符串中的每个字符。如

果是左括号,则入栈;如果是右括号,则判断栈顶元素是否与之匹配。

参考习题:编写一个程序,实现括号匹配的功能,并输出匹配结果。

二、队列的应用题

1. 循环队列的应用

问题描述:设计一个循环队列,实现入队、出队等基本操作。

解题思路:利用数组实现循环队列,需要设置一个队头指针front

和一个队尾指针rear。入队操作时,将元素添加到rear位置;出队操作时,返回front位置元素,并将front后移。

参考习题:实现一个循环队列,并进行相关操作的测试。

三、链表的应用题

1. 单链表反转

问题描述:给定一个单链表,将其反转。

例题:将链表1->2->3->4->5反转为5->4->3->2->1。

解题思路:利用三个指针prev、cur和next,依次遍历链表,并修

改指针指向实现链表的反转。

参考习题:编写一个程序,实现单链表反转,并输出反转后的链表。

四、树的应用题

1. 二叉树的遍历

问题描述:给定一个二叉树,实现它的前序遍历、中序遍历和后序

遍历。

解题思路:分别使用递归和迭代的方式实现二叉树的前序遍历、中

序遍历和后序遍历。

参考习题:编写一个程序,实现二叉树的前序遍历、中序遍历和后

序遍历,并输出遍历结果。

五、图的应用题

1. 图的最短路径

问题描述:给定一个有向图,求两个顶点之间的最短路径。

解题思路:使用Dijkstra算法或Floyd算法,求解图的最短路径。

参考习题:编写一个程序,实现有向图的最短路径算法,并输出最

短路径。

六、哈希表的应用题

1. 查找单词频率

问题描述:给定一个文本文件,统计每个单词的出现频率。

解题思路:使用哈希表存储每个单词及其出现次数,遍历文本文件,并更新哈希表中的计数。

参考习题:编写一个程序,实现单词频率统计,并输出每个单词出

现的次数。

以上是一些《数据结构》的应用题参考习题。通过解答这些习题,

可以加深对数据结构的理解,提高算法的编写能力。希望本文能对你

有所帮助!

数据结构习题及答案 (1)

第八章查找 一、判断题 1.用二分查找法对一个顺序表进行查找,这个顺序表可以是按各键值排好序的,也可以是没有按键值排好序的。() 2.哈希表的查找不用进行关键字的比较。() 3.哈希表的定义函数H(key)=key%p(p<=m)这种方法是直接定址法。() 4.装填因子α的值越大,就越不容易发生冲突。( ) 5.选择hash函数的标准为:随机性好、均匀性好和尽量避免冲突。( ) 参考答案:1、×2、×3、×4、×5、√ 二、填空题 1.顺序查找法的平均查找长度为__________,二分查找法的平均查找长度为________,分块查找法(以顺序查找确定块)的平均查找长度为__________,分块查找法(以二分查找确定块〉的平均查找长度为_________,哈希表查找法采用链接法处理冲突时的平均查找长度为_________。 (n+1)/2;((n+1)*log2(n+1))/n-1;(s2+2s+n)/2s;log2(n/s+1)+s/2;1+α 2.在各种查找方法中,平均查找长度与结点个数n无关的查法方法是_________ 哈希表查找 3.二分查找的存储结构仅限于_________,且是__________。 顺序;有序的 4.在分块查找方法中,首先查找__________,然后再查找相应的___________。 索引;块 5.长度为255的表,采用分块查找法,每块的最佳长度是____________。 15 6.在散列函数H(key)=key%p中,p应取_______________。 小于表长的最大素数 7.假设在有序线性表A[1..20]上进行二分查找,则比较一次查找成功的结点数为 _________,则比较二次查找成功的结点数为__________,则比较三次查找成功的结点数为 _________,则比较四次查找成功的结点数为________,则比较五次查找成功的结点数为 _________,平均查找长度为_________。 ①1 ②2 ③4 ④8 ⑤5 ⑥3.7

《数据结构》应用题练习

《数据结构》应用题练习 1、将下图所示的森林转换成二叉树。 2、已知一棵二叉树的中序序列和后序序列分别如下 先序序列:A B D E C F H K G 中序序列:B E D A H F K C G 请完成:(1)画出该二叉树(2分); (2)写出该二叉树的后序序列(2分)。 3、对于一组给定的权值W={4,18,6,22,10,15},请完成: (1)建立相应的哈夫曼树; (2)计算其WPL值。 4、如下所示的有向图,回答下面问题: (1)该图是强连通的吗?若不是,给出强连通分量。 (2)请给出图的邻接矩阵 (3)请给出图的邻接表和逆邻接表。 (4) 计算各点的入度和出度 5、下图是一个带权无向图,要求: (1)画出以V1为初始顶点、按Prim算法构造最小生成树的过程;

(2)求出最小生成树的总代价; (3)Prim算法求最小生成树适用于什么情形? 6下图是一个带权无向图,要求: (1)画出以V1为初始顶点、按克鲁斯卡尔算法构造最小生成树的过程; (2)求出最小生成树的总代价; (3)克鲁斯卡尔算法求最小生成树适用于什么情形? 7、设有一组初始记录关键字为(10, 2, 26, 4, 18, 24, 21, 15, 8,) 要求: (1)构造一棵二叉排序树并给出构造过程。 (2)查找关键字2需要和哪些结点进行比较? (3)等概率查找下的ASL是多少? 8、已知哈希函数为H(key)=key%11,哈希表长度为13,用平方探测再散列的方法处理冲突。 表中已依次存放了关键字为33、23、32、54和42的5个记录: (1)现将关键字65填入哈希表,确定其存储地址(要求写出每一步的哈希地址计算表达式)。 (2)若查找关键字65的记录,需依次与哪些关键字进行比较? (3)为确保查找正确,如果删除关键字为54的记录应作何处理? 9关键码集为{47,7,29,11,16,92,22,8,3},散列表表长为m=11,散列函数为H(key)=key mod 11 ,线性探测法处理冲突。 (1)生成哈希表 (2)计算查找成功的ASL

数据结构应用题练习

数据结构应用题练习 一、简介 数据结构是计算机科学中的重要概念,是指数据组织、管理和存储的方式。它是计算机处理和分析数据的基础,在各个领域都有广泛的应用。本文将通过几个数据结构应用题的练习,展示数据结构在实际问题中的应用。 二、链表应用题 链表是一种常见的数据结构,在许多场景中都有广泛的应用。假设有一组学生的信息,包括学生姓名、年龄和成绩,请使用链表来存储并实现以下操作: 1. 添加学生信息 2. 删除学生信息 3. 查找学生信息 4. 修改学生信息 三、栈应用题 栈是一种后进先出(LIFO)的数据结构,在很多应用中都有不可或缺的地位。以网页浏览器的前进和后退功能为例,使用栈可以很方便地实现该功能。请描述如何使用栈来实现浏览器的前进和后退功能,并分析算法的时间复杂度。

四、队列应用题 队列是一种先进先出(FIFO)的数据结构,常用于处理排队等场景。现假设有一个任务队列,多个任务需要按照顺序执行。请使用队列来 存储任务,并实现以下操作: 1. 添加任务到队列 2. 从队列中取出并执行任务 3. 判断队列是否为空 4. 清空队列中的所有任务 五、树应用题 树是一种重要的非线性数据结构,在很多领域都有广泛应用。假设 有一组学生的信息,包括学生姓名、年龄和成绩,请使用树来存储这 些信息,并实现以下操作: 1. 添加学生信息到树中 2. 从树中查找指定学生的信息 3. 删除指定学生的信息 4. 获取树中所有学生的平均成绩 六、图应用题

图是一种用于描述事物之间关系的数据结构,在网络分析、路径规划等领域有广泛应用。假设有一张地图,其中包含若干城市和连接它们的道路,请使用图来存储地图信息,并实现以下操作: 1. 添加城市和道路到图中 2. 查找两个城市之间的最短路径 3. 删除某个城市及其相关的道路 4. 统计图中有多少个孤立的城市 七、哈希表应用题 哈希表是一种通过散列函数实现高效存储和查找的数据结构,在很多场景中都有广泛应用。假设有一组学生的信息,包括学生姓名、年龄和成绩,请使用哈希表来存储这些信息,并实现以下操作: 1. 添加学生信息到哈希表中 2. 从哈希表中查找指定学生的信息 3. 删除指定学生的信息 4. 统计哈希表中学生信息的个数 八、总结 以上是几个常见的数据结构应用题的练习,通过这些练习可以更深入地理解数据结构的应用和算法的设计。数据结构是计算机科学中非常重要的一个领域,其应用广泛且多样化。在实际问题中,合理选择

《数据结构》应用题参考习题

《数据结构》应用题参考习题数据结构是计算机科学中的一门基础课程,它主要研究数据的组织、存储和管理方式,以及不同数据结构对算法执行效率的影响。在实际 应用中,数据结构起到了至关重要的作用。本文将介绍一些《数据结构》的应用题,并给出相应的参考习题。 一、栈的应用题 1. 符号匹配问题 问题描述:给定一个字符串,在其中包含了一些圆括号"()"、方括号"[]"和花括号"{}",判断字符中的括号是否匹配。 例题:判断字符串"{[()]()}"是否匹配。 解题思路:利用栈的先进后出特点,遍历字符串中的每个字符。如 果是左括号,则入栈;如果是右括号,则判断栈顶元素是否与之匹配。 参考习题:编写一个程序,实现括号匹配的功能,并输出匹配结果。 二、队列的应用题 1. 循环队列的应用 问题描述:设计一个循环队列,实现入队、出队等基本操作。 解题思路:利用数组实现循环队列,需要设置一个队头指针front 和一个队尾指针rear。入队操作时,将元素添加到rear位置;出队操作时,返回front位置元素,并将front后移。

参考习题:实现一个循环队列,并进行相关操作的测试。 三、链表的应用题 1. 单链表反转 问题描述:给定一个单链表,将其反转。 例题:将链表1->2->3->4->5反转为5->4->3->2->1。 解题思路:利用三个指针prev、cur和next,依次遍历链表,并修 改指针指向实现链表的反转。 参考习题:编写一个程序,实现单链表反转,并输出反转后的链表。 四、树的应用题 1. 二叉树的遍历 问题描述:给定一个二叉树,实现它的前序遍历、中序遍历和后序 遍历。 解题思路:分别使用递归和迭代的方式实现二叉树的前序遍历、中 序遍历和后序遍历。 参考习题:编写一个程序,实现二叉树的前序遍历、中序遍历和后 序遍历,并输出遍历结果。 五、图的应用题 1. 图的最短路径

数据结构应用题复习

1.下图表示一个地区的交通网,顶点表示城市,边表示城市间的公路,边上的数值(权)表示修建公路的代价。要求从顶点A出发构造能连通每个城市且总代价最低的五条公路。 2.已知一棵二叉树的先序和中序遍历的结点序列分别为ABCDEFG及CBDAEGF,试画出此二叉树。并给出该二叉树的后根遍历序列,以及后根遍历线索二叉树。 3.已知一个无向图的邻接表为: (1)试画出这个无向图,并给出该图的邻接矩阵 (2)试画出从V1顶点出发对图进行广度优先搜索的过程(即走过的边)。 (3)试画出从V1顶点出发对图进行深度优先搜索的过程(即走过的边)。 4.应用希尔排序算法(快速排序算法、二路归并算法),对键值序列{47,35,65,93,75,13,27,47}从小到大进行排序,试写出每趟排序的结果。 5.一项工程P由六个子工程组成,这些子工程的优先关系用下列的有向无环图表示。试给出工程P的四种可能的施工顺序。 6.已知一键值序列为{46,25,50,13,35,80,9},按照给定键值的顺序依次插入到初始为空的二叉排序树中。计算查找成功的ASL、查找不成功的ASL。

7.设一组关键字{19,01,23,14,84,20,27,10},哈希表的长度为15,采用哈希函数H(key)=Key % 13 (1)采用开放地址法的线性探测方法解决冲突; (2)链地址法构造哈希表;(发生冲突的键值插入到链表第一个结点之前) 8.对有序数据序列(10,19,27,38,49,65,76,97,134)进行二分查找,请给出查找关键字97、23的过程,计算查找成功的ASL、查找不成功的ASL。 9.已知一组叶子的权值,构造哈夫曼树,给出每个叶子的哈夫曼编码

《数据结构》大题及答案

《数据结构》大题及答案 一、应用题 1.已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3次、4次和9次,对该字符串用[0,1]进行前缀编码,问该字符串的编码至少有多少位。 解:以各字符出现的次数作为叶子结点的权值构造的哈夫曼编码树如图所示。其带权路径长度=2×5+1×5+3×4+5×3+9×2+4×3+4×3+7×2=98,所以,该字符串的编码长度至少为98位。 2.已知关键码序列为(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec),散列表的地址空间为0~16,设散列函数为H(x)=[ i/2 」(取下整数) ,其中i为关键码中第一个字母在字母表中的序号,采用链地址法处理冲突构造散列表,并求等概率情况下查找成功的平均查找长度。 解:H(Jan)=10/2=5, H(Feb)=6/2=3, H(Mar)=13/2=6, H(Apr)=1/2=0 H(May)=13/2=6, H(Jun)=10/25, H(Jul)=10/25, H(Aug)=1/2=0 H(Sep)=19/2=8, H(Oct) =15/2=7, H(Nov) =14/2=7, H(Dec) =4/2=2 采用链地址法处理冲突,得到的开散列表如下: 平均查找长度=(1×7+2×4+3×1)/12=18/12

3.分析下面各程序段的时间复杂度 (1) s1(int n) { int p=1,s=0; for (i=1;i<=n;i++) { p*=i;s+=p; } return(s); } ——O(n) (2) s2(int n) x=0;y=0; For (k=1;k<=n;k++) x++; For (i=1;i<=n;i++) For (j=1;j<=n;j++) y++; ——O(n2) 4.下述算法的功能是什么? (1)(1)返回结点*p的直接前趋结点地址。 (2)交换结点*p和结点*q(p和q的值不变)。 5.对给定的一组权值W=(5,2,9,11,8,3,7),试构造相应的哈夫曼树,并计算它的带权路径长度。 解:构造的哈夫曼树如图所示。 WPL=2×4+3×4+5×3+7×3+8×3+9×2+11×2=120 6.已知散列函数H(k)=k mod 12,键值序列为(25, 37, 52, 43, 84, 99, 120, 15, 26, 11,

数据结构第九章--查找-习题及答案

第九章查找 一、选择题 1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。 A. (n-1)/2 B. n/2 C. (n+1)/2 D. n 2. 下面关于二分查找的叙述正确的是 ( ) A. 表必须有序,表可以顺序方式存储,也可以链表方式存储 C. 表必须有序,而且只能从小到大排列 B. 表必须有序且表中数据必须是整型,实型或字符型 D. 表必须有序,且表只能以顺序方式存储 3. 用二分(对半)查找表的元素的速度比用顺序法( ) A.必然快 B. 必然慢 C. 相等 D. 不能确定 4. 具有12个关键字的有序表,折半查找的平均查找长度() A. 3.1 B. 4 C. 2.5 D. 5 5.当采用分块查找时,数据的组织方式为 ( ) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块 C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同 6. 二叉查找树的查找效率与二叉树的( (1))有关, 在 ((2))时其查找效率最低 (1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置 (2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。 7. 对大小均为n的有序表和无序表分别进行顺序查找,在等概率查找的情况下,对于查找失 败,它们的平均查找长度是((1)) ,对于查找成功,他们的平均查找长度是((2))供选择的答案: A. 相同的 B.不同的 9.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( ) A.(100,80, 90, 60, 120,110,130) B.(100,120,110,130,80, 60, 90) C.(100,60, 80, 90, 120,110,130) D. (100,80, 60, 90, 120,130,110) 10. 在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0右孩子的平衡因子为1,则应作( ) 型调整以使其平衡。 A. LL B. LR C. RL D. RR 11. 下面关于m阶B-树说法正确的是( ) ①每个结点至少有两棵非空子树;②树中每个结点至多有m一1个关键字; ③所有叶子在同一层上; ④当插入一个数据项引起B树结点分裂后,树长高一层。 A.①②③ B. ②③ C. ②③④ D. ③ 12. m阶B-树是一棵( ) A. m叉排序树 B. m叉平衡排序树 C. m-1叉平衡排序树 D. m+1叉平衡排序树 15. 设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链 地址法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有()个记录。 A.1 B. 2 C. 3 D. 4 16. 关于哈希查找说法不正确的有几个( ) (1)采用链地址法解决冲突时,查找一个元素的时间是相同的 (2)采用链地址法解决冲突时,若插入规定总是在链首,则插入任一个元素的时间是相同的 (3)用链地址法解决冲突易引起聚集现象 (4)再哈希法不易产生聚集

《数据结构》题库及答案

《数据结构》题库及答案 一、选择题 1.线性表的顺序存储结构是一种的存储结构,线性表的链式存储结构是一种的存储结构。 a.随机存储; b.顺序存储; c. 索引存取; d. HASH存取 2.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是。 a. edcba; b. decba; c. dceab; 3.一个队列的入队序列是1,2,3,4,则队列的输出序列是。 a. 4,3,2,1; b. 1,2,3,4; c. 1,4,3,2; ,2,4,1 4.在一个单链表中,已知p结点是q结点的直接前驱结点,若在p和q之间插入结点s,则执行的操作是。 a.s->nxet=p->next; p->next=s; b.| c.p->next=s->next; s->next=p; d.q->next=s; s->next=p; e.p->next=s; s->next=q; 5.设有两个串p,q,求q在p中首次出现的位置的运算称作。 a.联接 b.模式匹配 c.求子串 d.求串长 6.二维数组M的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到8,列下标j 的范围从1到10,则存放M至少需要个字节。 a.90 7.在线索二叉树中,结点p没有左子树的充要条件是。 a.p->lch==NULL b.p->ltag==1 c.· d.p->ltag==1且p->lch=NULL e.以上都不对 8.在栈操作中,输入序列为(A,B,C,D),不可能得到的输出序列为:______ A、(A,B,C,D) B、(D,C,B,A) C、(A,C,D,B) D、(C,A,B,D) 9.已知某二叉树的后序序列是dabec,中序序列是debac,则它的先序序列是。 A、acbed B、decab C、deabc D、cedba 10.设矩阵A是一个对称矩阵,为了节省存储空间,将其下三角部分(见下图)按行序存放在一维数组B[1..n(n-1)/2]

数据结构应用题练习

1、假设一棵二叉树的层序序列是ABCDEFGHIJ 和中序序列是DBGEHJACIF,请画出该树。 21、有一个完全二叉树按层次顺序存放在一维数组中,如下所示: 请指出结点P 的父结点,左子女,右子女。 3、给出下列二叉树的先序序列。 4、已知二叉树的先序遍历序列为ABCDEFGH ,中序遍历序列为CBEDFAGH ,画出二叉树。 答案:二叉树形态 A F H G D E C B (2)设一棵二叉树的先序序列: A B D F C E G H ,中序序列: B F D A G E H C ①画出这棵二叉树。 ②画出这棵二叉树的后序线索树。 ③将这棵二叉树转换成对应的树(或森林)。 A B F D ( C E H G

(1) (2) 1、已知一棵二叉树的前序序列为:A,B,D,G,J,E,H,C,F,I,K,L中序序列:D,J,G,B,E,H, A,C,K,I,L,F。 i.写出该二叉树的后序序列; ii.画出该二叉树; iii.求该二叉树的高度(假定空树的高度为-1)和度为2、度为1、及度为0的结点个数。 该二叉树的后序序列为:J,G,D,H,E,B,K,L,I,F,C,A。 该二叉树的形式如图所示: 该二叉树高度为:5。 度为2的结点的个数为:3。 度为1的结点的个数为:5。 度为0的结点个数为:4。 5、试用权集合{12,4,5,6,1,2}构造哈夫曼树,并计算哈夫曼树的带权路径长度。 答案:

2 1 5 6 1118 73 4 12 30 WPL=12*1+(4+5+6)*3+(1+2)*4=12+45+12=69 6、已知权值集合为{5,7,2,3,6,9},要求给出哈夫曼树,并计算带权路径长度WPL 。 答案:(1)树形态: 3 2 5 5 1019 9 7 6 13 32 (2)带权 路 径 长 度 : WPL=(6+7+9)*2+5*3+(2+3)*4=44+15+20=79 (3) 假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。 ① 试为这8个字母设计赫夫曼编码。 ② 试设计另一种由二进制表示的等长编码方案。 ③ 对于上述实例,比较两种方案的优缺点。 解:方案1;哈夫曼编码 先将概率放大100倍,以方便构造哈夫曼树。 w={7,19,2,6,32,3,21,10},按哈夫曼规则:【[(2,3),6], (7,10)】, ……19, 21, 32 (100) (40) (60) 19 21 32 (28) () (11) 7 10 6 (5)

数据结构应用题

、应用题(共30分,每题6分) 1.已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,…,n k个度为k 的结点,问该树有多少个叶子结点?(6分) 2.对于下面两个图,求出: (1)无向图中每个顶点的度,有向图中每个顶点的入度,出度和度。 (2)是否是连通图/强连通图,如果不是,画出连通分量/强连通分量。(6分) 4 0 3 1 2 0 1 2 4 3

3.分别画出在线性表(a, b, c, d, e, f, g)中进行折半查找,以查关键字等于e、f 和g的过程。(6分) 4.已知一组元素的关键字{46,74,16,53,14,26,40,38,86,65,27,34},利用直接插入 排序法,写出每次向前面的有序表插入一个元素后的排列结果。(6分) 5、将下图转换为二叉树,对转换后的二叉树进行先序、中序、后序遍历序列。(6分) A B C D

五、程序题(20分) 1.将下面算法填完整。(10分,每空2分) int Search_Bin(SSTable ST, KeyType key){ //在有序表ST中折半查找其关键字等于key的数据元素,若找到,则返回该元素//在表中的位置,否则返回0 low=1;high=ST.length; while(low<=high){ mid=____________; if(EQ(key, ST.elem[mid].key)) return ____________; else if(LT(key, ST.elem[mid].key)) high=____________; else low=____________; } return ____________; } 2.将下面算法填完整。(10分,每空2分) void InsertSort(SqList &L){ //对顺序表L作直接插入排序 for(i=2;i<=L.length;++i) if(LT(L.r[i].key, L.r[i-1].key)){

数据结构应用题答案2014-7-6

数据结构应用题答案 第2章线性表 1.设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A 的后面插入结点B的操作序列(设双向链表中结点的两个指针域分别为llink和rlink)。答:操作序列如下:q->rlink = p->rlink ; p->rlink = q ; q->rlink->llink = q ; q->llink = p ; 注意答案不唯一 第3章栈和队列 1.设有编号为1,2,3,4的四辆列车,顺序进入一个栈式结构的车站,具体写出这四辆列车开出车站的所有可能的顺序。 答:共计14种,分别是:1234, 1243, 1324, 1342, 1432, 2134, 2143, 2341, 2314,2431, 3214, 3241, 3421, 4321 2.如果输入序列为1,2,3,4,5,6,试问能否通过栈结构得到以下两个序列:4,3,5,6,1,2和1,3,5,4,2,6;请说明为什么不能或如何才能得到。 答:(1)不能得到4,3,5,6,1,2 ;因为1,2,3,4入栈后;4,3出栈;得到序列4,3;栈中还有1,2;5入栈后即出栈,得到序列4,3,5;6入栈后即出栈,得到序列4,3,5,6;此时,栈中还有1,2;必须2先出栈,然后1再出栈,1不可能在2之前出栈。故而得不到该序列。 (2)能得到输出顺序为1,3,5,4,2,6的序列。得到的操作如下:1入栈后即出栈,得到序列1;2,3入栈后3即出栈,得到序列1,3;4,5入栈后,5出栈,4出栈,得到序列1,3,5,4;2出栈,得到序列1,3,5,4,2;6入栈后即出栈,得到序列1,3,5,4,2,6。 3.假设正读和反读都相同的字符序列为“回文”,例如,‘abba’和‘abcba’是回文,‘abcde’和‘ababab’则不是回文。假设一字符序列已存入计算机,请用堆栈判断其是否为回文,简述算法。 答:方法一:使用数据结构:循环队列和顺序栈。算法思路为: 1.将字符串按照用户输入的顺序分别入栈和队列 2.分别从队列和栈中取出首个字符 3.比较取出的字符,若相等,继续分别从队列和栈中取首个字符;否则跳出循环,并设置标志flag=0; 4.若队列和栈中的字符都取完,则结束,设置标志flag=1; 5.flag=1,表示字符从前往后和从后往前的序列完全匹配,该字符串属于回文 6.flag=0,表示字符从前往后和从后往前的序列不完全匹配,该字符串不属于回文 方法二:使用栈。将字符串的前一半入栈,再依次出栈,与后一半进行比较,若有不等则不是回文;若依次相等,则是回文。 注意:本题要求简答算法思路,并不要求写出具体算法。 4.试写出循环队列判空和判满的条件(队列最大容量为M)。 答:假设循环队列最大存储容量为M 判空:Q.front==Q.rear (1) 判满:(Q.rear+1)%M==Q.front (2) 评分标准:给出(1)和(2)式分别得3分,其他酌情扣分。 5.假设Q[0..10]是一个循环队列,初始状态为front=rear=0,画出做完下列操作后队列的头尾指针的状态变化情况,若不能入队,请指出其元素,并说明理由。 d,e,b,g,h入队;d,e出队;i,j,k,l,m入队;n,o,p入队 答:(图自己根据解答画出)d,e,b,g,h入队;状态1:front=0,rear=5;

《数据结构》应用题参考习题

一.《树》应用题 1. 已知一棵树边的集合为{},请画出这棵树,并回答下列问题: (1)哪个是根结点? (2)哪些是叶子结点? (3)哪个是结点g的双亲? (4)哪些是结点g的祖先? (5)哪些是结点g的孩子? (6)哪些是结点e的孩子? (7)哪些是结点e的兄弟?哪些是结点f的兄弟? (8)结点b和n的层次号分别是什么? (9)树的深度是多少? (10)以结点c为根的子树深度是多少? 2. 一棵度为2的树与一棵二叉树有何区别。 3. 试分别画出具有3个结点的树和二叉树的所有不同形态? 4. 已知用一维数组存放的一棵完全二叉树:ABCDEFGHIJKL,写出该二叉树的先序、中序和后序遍历序列。

5. 一棵深度为H的满m叉树有如下性质:第H层上的结点都是叶子结点,其余各层上每个结点都有m棵非空子树,如果按层次自上至下,从左到右顺序从1开始对全部结点编号,回答下列问题: (1)各层的结点数目是多少? (2)编号为n的结点的父结点如果存在,编号是多少? (3)编号为n的结点的第i个孩子结点如果存在,编号是多少? (4)编号为n的结点有右兄弟的条件是什么?其右兄弟的编号是多少? 6. 找出所有满足下列条件的二叉树: (1)它们在先序遍历和中序遍历时,得到的遍历序列相同; (2)它们在后序遍历和中序遍历时,得到的遍历序列相同; (3)它们在先序遍历和后序遍历时,得到的遍历序列相同; 7. 假设一棵二叉树的先序序列为EBADCFHGIKJ,中序序列为ABCDEFGHIJK,请写出该二叉树的后序遍历序列。 8. 假设一棵二叉树的后序序列为DCEGBFHKJIA,中序序列为DCBGEAHFIJK,请写出该二叉树的后序遍历序列。 9. 给出如图1所示的森林的先根、后根遍历结点序列,然后画出该森林对应的二叉树。 10.给定一组权值(5,9,11,2,7,16),试设计相应的哈夫曼树。

(完整版)数据结构练习题及参考答案

数据结构练习题 第一部分 绪 论 一、单选题 1. 一个数组元素 a[i] 与 __________ 的表示等价。 A 、 *(a+i) B 、 a+i C 、 *a+i D 、 &a+i 2. 对于两个函数,若函数名相同,但只是 _______________ 不同则不是重载函数。 A 、 参数类型 B 、 参数个数 C 、 函数类型 3. 若需要利用形参直接访问实参,则应把形参变量说明为 _____________ 参数 A 、 指针 B 、 引用 C 、 值 4. 下面程序段的时间复杂度为 ______________ 。 for(int i=0; i

数据结构试题及答案

数据结构试题及答案 一、选择题(共10题,每题1分,共10分) 1( 下面关于线性表的叙述中,错误的是哪一个,( ) A(线性表采用顺序存储,必须占用一片连续的存储单元 B(线性表采用顺序存储,便于进行插入和删除操作 C(线性表采用链接存储,不必占用一片连续的存储单元 D(线性表采用链接存储,便于插入和删除操作 2( 在一个单链表中,已知q所指结点是p所指结点的前驱,若在p和q之间插入s所指结 点,则执行的操作是( )。 A. s->next=p->next;p->next=s; B. q->next=s;s->next=p; C. p->next=s->next;s->next=p; D. p->next=s;s->next=q; 3( 设有三个元素X,Y,Z顺序进栈,下列得不到的出栈排列是( )。 A(XYZ B. YZX C. ZXY D. ZYX 4( 若用一个长度为6的数组来实现循环队列,且当前rear和front的值分别为0和3, 则从队列中删除一个元素,再增加两个元素后,rear和front的值分别是( )。 A(1和5 B(2和4 C(4和2 D. 5和1 5( 下列说法中正确的是( )。 A(二叉树就是度为2的树 B(二叉树中不存在度大于2的结点

C(二叉树中至少有一个结点的度为2 D(二叉树中任何一个结点的度都为2 6( 在具有n个结点的二叉链表中,共有( )个空指针。 A. n B. n-1 C. n+1 D. 不确定 7( 根据二叉树与树的转换关系可知,深度为h的满二叉树对应的森林由( )棵树构成。 A(1 B(logn C. h/2 D. h 2 8( 在一个无向图中,所有顶点的度数之和等于所有边数的( )倍。 A(1/2 B(1 C. 2 D. 4 9( 对17个元素的查找表做折半查找,则查找长度为5的元素下标依次是( )。 A(8,17 ,(5,10,12 C(9,16 D(9,17 10(关于排序,下列说法中正确的是( )。 A. 稳定的排序方法优于不稳定的排序方法,因为稳定的排序方法效率较高 B. 在顺序表上实现的排序方法在链表上也可以实现 C. 在链表上可以实现简单选择排序,但是难以实现堆排序 D. 就平均性能而言,堆排序最佳 二、填空题(共10空,每空2分,共20分) 1( 计算机执行下面的语句时,语句s的执行次数为 _______ 。 for(i=l;i=i;j--) s; 2( 队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是_______。 3( 数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000 的内存单元中,则元素A[5,5]的地址是_______ 。 4( 一棵有124个叶子结点的完全二叉树,最多有个_______结点。

数据结构第九章--查找-习题及答案

第九章查找 一、选择题 1•若查找每个记录的概率均等,则在具有n 个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL 为()。 A .(n-1)/2B.n/2C.(n+1)/2D.n 2. 下面关于二分查找的叙述正确的是() A. 表必须有序,表可以顺序方式存储,也可以链表方式存储C.表必须有序,而且只能从小到大排列 B. 表必须有序且表中数据必须是整型,实型或字符型D.表必须有序,且表只 能以顺序方式存储 3. 用二分(对半)查找表的元素的速度比用顺序法() A. 必然快B.必然慢C.相等D.不能确定 4. 具有12个关键字的有序表,折半查找的平均查找长度() A.3.1 B.4 C.2.5 D.5 5.当采用分块查找时,数据的组织方式为() A. 数据分成若干块,每块内数据有序 B. 数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块 C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同 6. 二叉查找树的查找效率与二叉树的((1))有关,在((2))时其查找效率最低 (1) :A.高度B.结点的多少C.树型D.结点的位置 (2) :A.结点太多B.完全二叉树C.呈单枝树D.结点太复杂。 7. 对大小均为n 的有序表和无序表分别进行顺序查找,在等概率查找的情况下,对于查找失 败,它们的平均查找长度是((1)),对于查找成功,他们的平均查找长度是((2))供选择的答案: A.相同的 B.不同的 9.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是() A .(100,80,90,60,120,110,130)B.(100,120,110,130,80,60,90) C. (100,60,80,90,120,110,130)D.(100,80,60,90,120,130,110) 10. 在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A 的左孩子的平衡因子为0右孩子的平衡因子为1,则应作()型调整以使其平衡。 个记录。 A.1B.2C.3D.4 16. 关于哈希查找说法不正确的有几个() (1) 采用链地址法解决冲突时,查找一个元素的时间是相同的 (2) 采用链地址法解决冲突时,若插入规定总是在链首,则插入任一个元素的时间是相同的 (3) 用链地址法解决冲突易引起聚集现象 (4) 再哈希法不易产生聚集 A.1B.2C.3D.4 A.LL B.LR C. 11. 下面关于m 阶B-树说法正确的是() ①每个结点至少有两棵非空子树③所有叶子在同一层上; 长高一层。 A.①②③ B.②③ 12. m 阶B-树是一棵() A.m 叉排序树 B.m 叉平衡排序树 15. 设有一组记录的关键字为{19,14, C. RLD.RR ②树中每个结点至多有m 一1个关键字; ④当插入一个数据项引起B 树结点分裂后,树 ②③④D.③ m-1叉平衡排序树D.m+1叉平衡排序树20,84,27,55,11,10,79},用链) C. 23,1,68 地址法构造散列表,散列函数为H(key)=keyMOD13,散列地址为1的链中有

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

第1章 4.答案: (1)顺序存储结构 顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。 (2)链式存储结构 顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占用一整块存储空间。但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型来描述。 5. 选择题 (1)~(6):CCBDDA \ 6. (1)O(1) (2)O(m*n) (3)O(n2) (4)O(log3n) (5)O(n2) (6)O(n) (

第2章 1.选择题 (1)~(5):BABAD (6)~(10): BCABD (11)~(15):CDDAC \ 2.算法设计题 (1)将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中不允许有重复的数据。[题目分析] 合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。当一个表到达表尾结点,为空时,将非空表的剩余元素直接链接在Lc表的最后。 void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc) {法设计题 (1)将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈 顶指针top[1]等于m时该栈为空。两个栈均从两端向中间增长。试编写双栈初始化,判断栈空、栈满、进栈和出栈等算法的函数。双栈数据结构的定义如下:Typedef struct ] {int top[2],bot[2]; 第5章 , 1.选择题 (1)~(5):ADDCA (6)~(10):CCBDC (11)~(15):BCACA

数据结构习题(含答案)

一、单选题(每小题3分,共30分) 1.在逻辑上可以把数据结构分成。( ) A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.串是_________。( ) A.不少于一个字母的序列B.任意个字母的序列 C.不少于一个字符的序列D.有限个字符的序列 3.在n个元素的顺序表中,时间复杂度是O(1)的操作是______。( ) A.获得第i个数据元素值B.查找给定值 C.在第i个位置上插入数据元素D.删除第i个数据元素 4.线性表若采用链式存储结构时,要求内存中可用存储单元的地址________。 ( ) A. 必须是连续的 B. 部分地址必须是连续的 C. 一定是不连续的 D. 连续或不连续都可以 5.单链表中,在p结点之后插入q结点,操作的语句为。( ) A.q->next=p->next,p->next=q B.p=q->next,q->next=p C.p->next=q->next,q->next=p D.q=p->next,p->next=q 6.栈中数据元素的插入和删除操作是在表的进行的。 ( ) A.一端B.两端C.中间D.任意位置7.队列的特点是。 ( ) A.先进先出B.后进先出C.先进后出D.随机存取8.树中结点A有3个兄弟,结点B是A的双亲,则B的度是。 ( ) A.1B.2C.3D.4 9.下面关于图的存储结构的叙述中正确的是____________。 ( ) A.用邻接矩阵存储图,占用空间大小只与图中顶点数有关,而与边数无关 B.用邻接矩阵存储图,占用空间大小只与图中边数有关,而与顶点数无关 C.用邻接表存储图,占用空间大小只与图中顶点数有关,而与边数无关 D.用邻接表存储图,占用空间大小只与图中边数有关,而与顶点数无关

国家开放大学电大《数据结构》网络课综合应用题题库及答案

国家开放大学电大《数据结构》网络课综合应用题题库及答案综合应用题 题目32 (1 )以3,4,5 , 8 9,作为叶结点的权,构造一梆哈夫曼树.该快J的帝权路径长度为B A. 64 B.65 C. 62 D. 66 (2)权重为3的叶结卓的哈夫曼循码为C t V . A.010 B.DTD1 €.000D.0111 题目33 (1 )以2 3 4,7 . 8,9作为0简点的权枸『桦昭夫蔓枸岫的希权路径长度为日 A t66 B: 80 G r62 D: 87 12>权重值为4的叶结点的哈夫曼编码为C =力. A.0001? B; 1110 C.001 D. 110 题目34 (1)已知某二叉树的后序遍历序列是debca,中序遍历序列是dbeac,该二叉树的根结点是b S A® B. c C.b D. a (2)先序遍历序列是C S / ■ A.re.bx.d.a B:.x.a.b.,d.e C; a,b,d,e,e D. a.c,b.d t e, 题目35 (1)已知某二叉树的先序遍历序列是Mcdb,中序颠序列是eadcb,该二叉树的根结点是D € A.: e :B cD. a A. e.d.D.c.a 0. c^.b.^.e C a.b.d.e.c D. a.c.b.d.e. 题目36

(1)以结定权重•值5, 6, 17,修,25, 30,为叶结点,建立一棵哈夫曼树,该树的中序遍历序列为v A. 5,lh28.6,17.58.30.101,18,43,25 日,'5,11,6t28,17;58,30;10h18,43,15 ▼ Q*• • * • • * ■、••- , J. • Ci:5>11.6,28,101, 58. 30. 17.18,43.25 D;•务lb6, ;2&17,5MSO,10b18,25,: 43 (2)极重值为6的叶结点的哈夫曼为D t . A. 1DD1 B.D11。.0。1 D.0DD1 题目23 (1) 设查找表为27,29,55,68) ,画出对上述直歧进行折半直找所对应的判定树,为了成功查 好I元<14裁依次与E G行比较 A. 23.10.1.14323,29,27,14 C 23.1D.11.14 D.23.29,55,14 (2) 在等祗率条f牛下・成功查找的平均比较次数为B# 八 A.24/9 B.25/9 C.3 D.2.5 题目24 题目25

相关主题
相关文档
最新文档