数据结构作业(更新到排序)

合集下载

《数据结构》填空作业题答案

《数据结构》填空作业题答案

《数据结构》填空作业题答案第1章绪论(已校对无误)1.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算三方面的内容。

2.程序包括两个内容:数据结构和算法。

3. 数据结构的形式定义为:数据结构是一个二元组: Data Structure =(D,S)。

4. 数据的逻辑结构在计算机存储器内的表示,称为数据的存储结构。

5. 数据的逻辑结构可以分类为线性结构和非线性结构两大类。

6. 在图状结构中,每个结点的前驱结点数和后继结点数可以有多个。

7. 在树形结构中,数据元素之间存在一对多的关系。

8. 数据的物理结构,指数据元素在计算机中的标识(映象),也即存储结构。

9. 数据的逻辑结构包括线性结构、树形结构和图形结构 3种类型,树型结构和有向图结构合称为非线性结构。

10. 顺序存储结构是把逻辑上相邻的结点存储在物理上连续的存储单元里,结点之间的逻辑关系由存储单元位置的邻接关系来体现。

11. 链式存储结构是把逻辑上相邻的结点存储在物理上任意的存储单元里,节点之间的逻辑关系由附加的指针域来体现。

12. 数据的存储结构可用4种基本的存储方法表示,它们分别是顺序存储、链式存储、索引存储和散列存储。

13. 线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是一对多或多对多。

14. 数据结构在物理上可分为顺序存储结构和链式存储结构。

15. 我们把每种数据结构均视为抽象类型,它不但定义了数据的表示方式,还给出了处理数据的实现方法。

16. 数据元素可由若干个数据项组成。

17. 算法分析的两个主要方面是时间复杂度和空间复杂度。

18. 一个算法的时间复杂度是用该算法所消耗的时间的多少来度量的,一个算法的空间复杂度是用该算法在运行过程中所占用的存储空间的大小来度量的。

19. 算法具有如下特点:有穷性、确定性、可行性、输入、输出。

20. 对于某一类特定的问题,算法给出了解决问题的一系列操作,每一操作都有它的确切的定义,并在有穷时间内计算出结果。

北语 18秋《数据结构》 作业1234

北语 18秋《数据结构》 作业1234

18秋《数据结构》作业_1一、单选题 ( 每题4分, 共23道小题, 总分值92分 )1.答案:B作业代做QQ:805009261 成绩保证95分以上,基本满分!2.答案:B3.答案:D4.答案:D5.与单链表相比,双链表的优点之一是___。

A. 插入、删除操作更简单B. 可以进行随机访问C. 可以省略表头指针或表尾指针D. 顺序访问相邻结点更灵活答案:D6.数据结构在计算机内存中的表示是指___。

A. 数据的存储结构B. 数据结构C. 数据的逻辑结构D. 数据元素之间的关系7.快速排序在下列情况下最易发挥其长处的是()。

A. 被排序的数据中含有多个相同排序码B. 被排序的数据已基本有序C. 被排序的数据完全无序D. 被排序的数据中的最大值和最小值相差悬殊8.A. (A)B. (B)C. (C)D. (D)9.链式栈与顺序栈相比,一个比较明显的优点是()。

A. 插入操作更加方便B. 通常不会出现栈满的情况C. 不会出现栈空的情况D. 删除操作更加方便10.11.12.13.有一个有序表{1,3,9,12,32,41,45,62,75,77,82,95,100},当折半查找值为82的结点时,___次比较后查找成功。

A. 11B. 5C. 4D. 814.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有___个空指针域。

A. 2m-1B. 2mC. 2m+1D. 4m15.A. (A)B. (B)C. (C)D. (D)16.A. (A)B. (B)C. (C)D. (D)17.A. (A)B. (B)C. (C)D. (D)18.下述哪一条是顺序存储结构的优点___。

A. 插入运算方便B. 可方便地用于各种逻辑结构的存储表示C. 存储密度大D. 删除运算方便19.设某棵二叉树中有2000个结点,则该二叉树的最小高度为___。

A. 9B. 10C. 11D. 1220.设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行___趟的分配和回收才能使得初始关键字序列变成有序序列。

数据结构第四五六七章作业答案

数据结构第四五六七章作业答案

数据结构第四五六七章作业答案数据结构第四、五、六、七章作业答案第四章和第五章一、填空题1.不包含任何字符(长度为0)的字符串称为空字符串;由一个或多个空格(仅空格字符)组成的字符串称为空白字符串。

2.设s=“a;/document/mary.doc”,则strlen(s)=20,“/”的位置为3。

3.子串的定位操作称为串模式匹配;匹配的主字符串称为目标字符串,子字符串称为模式。

4、串的存储方式有顺序存储、堆分配存储和块链存储5.有一个二维数组a[0:8,1:5],每个数组元素用四个相邻字节存储,内存用字节寻址。

假设存储阵列元素a[0,1]的地址为100,如果以主行顺序存储,则a[3,5]的地址为176,[5,3]的地址为208。

如果按列存储,[7,1]的地址为128,[2,4]的地址为216。

6、设数组a[1…60,1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为8950。

7、三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的行下标、列下标和元素值。

8、二维数组a[10][20]采用列序为主方式存储,每个元素占10个存储单元,且a[0][0]的存储地址是2000,则a[6][12]的地址是32609.已知二维数组a[20][10]按行顺序存储,每个元素占2个存储单元,a[10][5]的存储地址为1000,则a[18][9]的存储地址为116810。

已知二维数组a[10][20]按行顺序存储,每个元素占2个存储单元,a[0][0]的存储地址为1024,则a[6][18]的地址为130011,两个字符串相等。

充要条件是长度相等,相应位置的字符相同。

12、二维数组a[10][20]采用列序为主方式存储,每个元素占一个存储单元,并且a[0][0]的存储地址是200,则a[6][12]的地址是200+(12*10+6)=326。

数据结构作业题及参考答案

数据结构作业题及参考答案

东北农业大学网络教育学院数据结构作业题(一)、选择题(每题2分,共20 分)1在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为( )。

2A Qn) B、O(n/2) C、O(1) D O(n )2.带头结点的单链表first为空的判定条件是( )。

A、first == NULL ;B、first->link == NULL ;C、first->link == first ;D、first != NULL ;3•在一棵树中,( )没有前驱结点。

A、分支结点B、叶结点C、树根结点D、空结点4•在有向图中每个顶点的度等于该顶点的( )。

A、入度B、出度C、入度与出度之和D、入度与出度之差5.对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为( ) 的值除以9。

A、20B、18C、25D、226•下列程序段的时间复杂度为( )。

s=0;for(i=1 ; i<n; i++)for(j=1 ; j<n ; j++)s+=i*j ;2A、O(1)B、O(n)C、O(2n)D、O(n)7•栈是一种操作受限的线性结构,其操作的主要特征是( )。

A、先进先出B、后进先出C、进优于出D、出优于进&假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear。

若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为( )。

4•在二叉树的第i 层上至多有 ______________ 结点。

5.对于一棵具有 n 个结点的二叉树,若一个结点的编号为A、 C、 (rear-front-1) % n B 、(rear-front) % n (front-rear+1) % nD 、(rear-front+n) % n高度为5的完全二叉树中含有的结点数至少为(16B 、17C 、3110.如图所示有向图的一个拓扑序列是D 、32)A 、 ABCDEFB 、 FCBEADC 、 FEDCBAD 、 DAEBCF二、填空题(每空1分,共20 分)1. n (n > 0)个顶点的无向图最多有2.在一棵AVL 树中,每个结点的左子树高度与右子树高度之差的绝对值不超过 ________ 。

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

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

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)【第一章绪论】1. 数据结构是计算机科学中的重要基础知识,它研究的是如何组织和存储数据,以及如何通过高效的算法进行数据的操作和处理。

本章主要介绍了数据结构的基本概念和发展历程。

【第二章线性表】1. 线性表是由一组数据元素组成的数据结构,它的特点是元素之间存在着一对一的线性关系。

本章主要介绍了线性表的顺序存储结构和链式存储结构,以及它们的操作和应用。

【第三章栈与队列】1. 栈是一种特殊的线性表,它的特点是只能在表的一端进行插入和删除操作。

本章主要介绍了栈的顺序存储结构和链式存储结构,以及栈的应用场景。

2. 队列也是一种特殊的线性表,它的特点是只能在表的一端进行插入操作,而在另一端进行删除操作。

本章主要介绍了队列的顺序存储结构和链式存储结构,以及队列的应用场景。

【第四章串】1. 串是由零个或多个字符组成的有限序列,它是一种线性表的特例。

本章主要介绍了串的存储结构和基本操作,以及串的模式匹配算法。

【第五章数组与广义表】1. 数组是一种线性表的顺序存储结构,它的特点是所有元素都具有相同数据类型。

本章主要介绍了一维数组和多维数组的存储结构和基本操作,以及广义表的概念和表示方法。

【第六章树与二叉树】1. 树是一种非线性的数据结构,它的特点是一个节点可以有多个子节点。

本章主要介绍了树的基本概念和属性,以及树的存储结构和遍历算法。

2. 二叉树是一种特殊的树,它的每个节点最多只有两个子节点。

本章主要介绍了二叉树的存储结构和遍历算法,以及一些特殊的二叉树。

【第七章图】1. 图是一种非线性的数据结构,它由顶点集合和边集合组成。

本章主要介绍了图的基本概念和属性,以及图的存储结构和遍历算法。

【总结】1. 数据结构是计算机科学中非常重要的一门基础课程,它关注的是如何高效地组织和存储数据,以及如何通过算法进行数据的操作和处理。

本文对《数据结构》第二版严蔚敏的课后习题作业提供了参考答案,涵盖了第1-7章的内容。

数据结构作业及参考答案(最新版)

数据结构作业及参考答案(最新版)

数据结构一、选择题1.数据的存储结构是指( )。

A 存储在外存中的数据 B 数据所占的存储空间C 数据在计算机中的顺序存储方式D 数据的逻辑结构在计算机中的表示 2.下列关于栈的描述中错误的是( )。

A 栈是先进后出的线性表B 栈只能顺序存储C 栈具有记忆作用D 对栈的插入与删除操作中,不需要改变栈底指针 3.用链表表示线性表的优点是( )。

A 便于随机存取B 花费的存储空间较顺序存储少C 便于插入和删除操作D 数据元素的物理顺序与逻辑顺序相同 4.在下面关于线性表的叙述中,选出正确的一项( )。

A 线性表的每个元素都有一个直接前驱和直接后继;B 线性表中至少要有一个元素;C 线性表中的元素必须按递增或递减的顺序排列;D 除第一个元素和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。

5.设在栈中,由顶向下已存放元素c b a ,在第4个元素d 入栈前,栈中元素可以出栈,试问d 入栈后,不可能的出栈序列是 ( )。

A d c b a B c b d aC c a d bD c d b a6.在下列关于二叉树的叙述中,选出正确的一项( )。

A 在二叉树中,任何一个结点的度都是2;B 二叉树的度为2;C 在二叉树中至少有一个结点的度是2D 一棵二叉树的度可以小于27.下面的二叉树中,( )不是完全二叉树。

8.有一棵非空的二叉树(第0层为根结点),其第i 层上至多有多少个结点 ( )。

A 2iB 2i-1C 2i+1D i9.线性表的逻辑顺序与存储顺序总是一致的,这种说法 ( )。

A 正确B 不正确10.深度为k 的二叉树,所含叶子的个数最多为 ( )。

A 2KB KC 2k-1D 2k-111.深度为5的二叉树至多有( )个结点。

A 16B 32C 31D 1012.在下面关于线性表的叙述中,选出错误的一项( )。

A 采用顺序存储的线性表,必须占用一片连续的存储单元B 采用顺序存储的线性表,便于进行插入和删除操作C 采用链接存储的线性表,不必占用一片连续的存储单元D 采用链接存储的线性表,便于进行插入和删除操作13.已知一棵二叉树的前序遍历结果为ABCDEF ,中序遍历结果为CBAEDF ,则后序遍历的结果为( )。

数据结构大作业

数据结构大作业

数据结构大作业平衡二叉树是一种特殊的二叉树结构,在插入或删除节点时,通过旋转操作来保持树的平衡性,从而提高查找、插入或删除操作的效率。

平衡二叉树的一种常见实现方式是AVL树。

AVL树是由俄罗斯数学家Adelson-Velsky和Landis于1962年提出的,它是一种自平衡的二叉树。

在AVL树中,每个节点的左右子树的高度之差(也称为平衡因子)不超过1、当插入或删除节点后导致一些节点的平衡因子超过1时,就需要通过旋转操作进行平衡调整。

具体来说,插入节点时,需要首先将节点插入到AVL树的合适位置。

然后,自底向上地检查每个节点的平衡因子。

如果发现一些节点的平衡因子超过1,则需要进行相应的旋转操作,使树重新恢复平衡。

旋转操作有四种基本情况,分别是LL、RR、LR和RL旋转。

LL旋转发生在一些节点的左子树的左子树上,RR旋转发生在一些节点的右子树的右子树上,LR旋转发生在一些节点的左子树的右子树上,RL旋转发生在一些节点的右子树的左子树上。

通过这些旋转操作,可以使树重新平衡。

删除节点时,需要先找到待删除的节点,并根据其子树的情况进行删除操作。

然后,从被删除节点的父节点向上检查每个节点的平衡因子,如果发现不平衡的节点,也需要进行相应的旋转操作。

AVL树的平衡调整是通过旋转操作来实现的,旋转操作的时间复杂度为O(1),因此平衡调整的时间复杂度为O(logn),其中n为树的节点数。

平衡二叉树的优点是能够保持树的平衡性,提高查找、插入、删除等操作的效率。

总结起来,平衡二叉树是一种特殊的二叉树,通过旋转操作来保持树的平衡性,从而提高查找、插入或删除操作的效率。

AVL树是一种常见的平衡二叉树实现方式,通过LL、RR、LR和RL旋转来使树重新平衡。

平衡二叉树的优点是能够保持树的平衡性,提高操作的效率。

数据结构形考作业4

数据结构形考作业4

一、单项选择题(每小题2分,共42分)题目1对线性表进行二分查找时,要求线性表必须()。

选择一项:A. 以链接存储方式,且数据元素有序B. 以顺序存储方式,且数据元素有序C. 以链接存储方式D. 以顺序存储方式题目2采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为()。

选择一项:A. (n-1)/2B. nC. (n+1)/2D. n/2题目3有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为()。

选择一项:A. 29/9B. 26/10C. 31/10D. 29/10题目4已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较()次。

选择一项:A. 5B. 4C. 3D. 6题目5有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,应该选择的序列是()。

选择一项:A. 12,24,30,37,45,53,96B. 37,24,12,30,53,45,96C. 30,24,12,37,45,96,53D. 45,24,53,12,37,96,30题目6对于顺序存储的有序表{5,12,20,26,37,42,46,50,64},若采用折半查找,则查找元素26的比较次数是()。

选择一项:A. 4B. 5C. 6D. 3题目7在所有的排序方法中,关键字比较的次数与记录初始排列秩序无关的是()。

选择一项:A. 希尔排序B. 直接选择排序C. 直接插入排序D. 冒泡排序题目8从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。

将其放入已排序序列的正确的位置上,此方法称为()。

选择一项:A. 交换排序B. 归并排序C. 插入排序D. 选择排序题目9依次将每两个相邻的有序表合并成一个有序表的排序方法称为()。

选择一项:A. 归并排序B. 选择排序C. 交换排序D. 插入排序题目10当两个元素出现逆序的时候就交换位置,这种排序方法称为()。

数据结构的作业

数据结构的作业

第五章作业: 第五章作业: 1.假设有二维数组 假设有二维数组a:array[1..6,0..7] of elemtp; 每个数据元 假设有二维数组 素占6个字节 存储器按字节编址 的基地址为1000,则: 素占 个字节,存储器按字节编址。a的基地址为 个字节 存储器按字节编址。 的基地址为 则 (1) 数组 的体积; 数组a的体积 的体积; (2)数组 的最后一个元素的第一个字节的地址; 数组a的最后一个元素的第一个字节的地址 数组 的最后一个元素的第一个字节的地址; (3)按行存储时,a[2,4]的第一个字节的地址; 按行存储时, 的第一个字节的地址; 按行存储时 的第一个字节的地址 (4)按列存储时,a[5,7]的第一个字节的地址; 按列存储时, 的第一个字节的地址; 按列存储时 的第一个字节的地址
7.写出下列各树的先根序列 后根序列 并且画出对应的二 写出下列各树的先根序列,后根序列 写出下列各树的先根序列 后根序列,并且画出对应的二 叉树. 叉树 A A A A B C D B C B C I 8.画出第 题的森林相应的二叉树 画出第7题的森林相应的二叉树 画出第 题的森林相应的二叉树. 9.画出和下列已知序列对应的树 画出和下列已知序列对应的树T: 画出和下列已知序列对应的树 树的先根次序访问序列为:GFKDAIEBCHJ,而且 而且 树的先根次序访问序列为 树的后根次序访问序列为:DIAEKFCJHBG。 。 树的后根次序访问序列为 E F J G H K
3.用单链表实现 用单链表实现Locate(L,x)函数。(可参考 函数。(可参考P26算法 算法2.5) 用单链表实现 函数。(可参考 算法 4.上机题:设单链表Va中的数据元素递增有序。试编 上机题:设单链表 中的数据元素递增有序 中的数据元素递增有序。 上机题 写程序,将数据X插入单链表 插入单链表Va, 写程序,将数据 插入单链表 ,要求插 入后保持该表的有序性。 入后保持该表的有序性。 5.写出双向链表删除第i个结点的算法 5.写出双向链表删除第i个结点的算法。 写出双向链表删除第 个结点的算法。 6.写出求双向循环链表长度的算法。(注:头结点 写出求双向循环链表长度的算法。(注 写出求双向循环链表长度的算法。( 不算) 不算)

国家开放大学电大《数据结构》网络课形考网考作业及答案

国家开放大学电大《数据结构》网络课形考网考作业及答案

国家开放大学电大《数据结构》网络课形考网考作业及答案国家开放大学电大《数据结构》网络课形考网考作业及答案100%通过考试说明:2022年秋期电大把该网络课纳入到“国开平台”进行考核,该课程共有4个形考任务,针对该门课程,本人汇总了该科所有的题,形成一个完整的标准题库,并且以后会不断更新,对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。

做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。

本文库还有其他网核及教学考一体化答案,敬请查看。

课程总成绩=形成性考核×50%+终结性考试×50%形考任务1一、单项选择题(每小题3分,共60分)题目1把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()。

选择一项:A.算法的具体实现B.逻辑结构C.给相关变量分配存储单元D.物理结构题目2下列说法中,不正确的是()。

选择一项:A.数据项是数据中不可分割的最小可标识单位B.数据元素是数据的基本单位C.数据项可由若干个数据元素构成D.数据可有若干个数据元素构成题目3一个存储结点存储一个()。

选择一项:A.数据项B.数据类型C.数据元素D.数据结构题目4数据结构中,与所使用的计算机无关的是数据的()。

选择一项:A.存储结构B.物理结构C.逻辑结构D.物理和存储结构题目5在线性表的顺序结构中,以下说法正确的是()。

选择一项:A.进行数据元素的插入、删除效率较高B.数据元素是不能随机访问的C.逻辑上相邻的元素在物理位置上不一定相邻 D.逻辑上相邻的元素在物理位置上也相邻题目6对链表,以下叙述中正确的是()。

A.可以通过下标对链表进行直接访问B.插入删除元素的操作一定要要移动结点C.不能随机访问任一结点D.结点占用的存储空间是连续的题目7下列的叙述中,不属于算法特性的是()。

选择一项:A.可行性B.有穷性C.可读性D.输入性题目8算法的时间复杂度与()有关。

数据结构各章作业题目

数据结构各章作业题目

第一章作业一、选择题1.被计算机加工的数据元素不是孤立的,它们彼此之间一般存在某种关系,通常把数据元素之间的这种关系称为( ).A。

规则B。

结构 C. 集合 D. 运算2.在Data_Structure=(D,S)中,D是()的有限集合。

A。

数据元素 B. 算法C。

数据操作D。

数据对象3.计算机所处理的数据一般具有某种关系,这是指()之间存在的某种关系。

A。

数据与数据B。

数据元素与数据元素C。

元素内数据项与数据项D。

数据文件内记录与记录4.顺序存储表示中数据元素之间的逻辑关系是由( )表示的.A。

指针B。

逻辑顺序 C. 存储位置D。

问题上下文5.链接存储表示中数据元素之间的逻辑关系是由( )表示的。

A。

指针B。

逻辑顺序C。

存储位置 D. 问题上下文6.从逻辑上可将数据结构分为()。

A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C。

内部结构和外部结构D。

线性结构和非线性结构7.以下选项属于线性结构的是( )。

A。

广义表 B. 二叉树C。

串 D. 稀疏数组8.以下选项属于非线性结构的是().A。

广义表B。

队列 C. 优先队列D。

栈9.以下属于逻辑结构的是( )A. 顺序表B。

散列表 C. 有序表 D. 单链表10.一个完整的算法应该具有( )等特性。

A. 可执行性、可修改性和可维护性B. 可行性、确定性和有穷性C。

确定性、有穷性和可靠性D。

正确性、可读性和有效性11.若一个问题既可以用迭代方法也可以用递归方法求解,则( )的方法具有更高的时空效率.A. 迭代B。

递归C。

先递归后迭代D。

先迭代后递归12.一个递归算法必须包括( )A。

递归部分 B. 终止条件和递归部分C。

迭代部分 D. 终止条件和迭代部分13.算法的时间复杂度与()有关。

A. 问题规模B. 源程序长度C. 计算机硬件运行速度D. 编译后执行程序的质量二、指出下列各算法的功能并求出其时间复杂度。

(1)int Prime(int n){int i=2,x=(int)sqrt(n); //sqrt(n)为求n的平方根while(i<=x){if(n%i==0)break;i++;}if(i〉x)return 1;else return 0;}(2)int sum1(int n){int p=1,s=0;for(int i=1;i<=n;i++){p*=i;s+=p;}return s;}(3)int sum2(int n){int s=0;for(int i=1;i〈=n;i++){int p=1;for(int j=1;i〈=i;j++) p*=j;s+=p;}return s;}(4)int fun(int n){int i=1,s=1;while(s<n) s+=++i;return i;}(5)void mtable(int n){for(int i=1;i〈=n;i++){for(int j=i;j<=n;j++)cout<〈i〈<"*"<<j〈<"=”〈〈setw(2)<〈i*j<<" ”;cout<<endl;}}第二章作业 一、选择题1. 在线性表中的每一个表元素都是不可再分的( )A 。

大连理工大学《数据结构》作业 参考答案

大连理工大学《数据结构》作业 参考答案
u=q->link; q->link=L->link; L->link=q; q=u; } }
数据结构作业参考答案
//有序表插入 void yxcharu(LinkList &L, ElemType e) {
LinkList pre,p,s; pre=L; p=L->link; while(p&&p->data<e) {
pre=p; p=p->link; } s=(LinkList)malloc(sizeof(Lnode)); s->data=e; s->link=p; pre->link=s; }
main()
{
LinkList L;
int n,i,mink,maxk;
ElemType e;
char choice='0';
数据结构作业参考答案
if(InitList_Sq(L)) {
printf("建立空顺序表成功!\n"); do{
printf("当前线性表长度为:%d\n",L.length); printf("请输入要插入元素的位置:"); scanf("%d",&i); printf("请输入要插入的元素值:"); scanf("%d",&k); if(sxbcr(L,i,k)) {
s=(LinkList)malloc(sizeof(Lnode));
scanf("%d",&s->data); s->link=NULL;
p->link=s;
p=s;

数据结构作业及答案

数据结构作业及答案

第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的1以及它们之间的2和运算等的学科。

1 A.数据元素 B.计算方法 C.逻辑存储 D.数据映像2 A.结构 B.关系 C.运算 D.算法2.数据结构被形式地定义为(K, R),其中K是1的有限集,R是K上的2有限集。

1 A.算法 B.数据元素 C.数据操作 D.逻辑结构2 A.操作 B.映像 C.存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4.线性结构的顺序存储结构是一种1的存储结构,线性表的链式存储结构是一种2的存储结构。

A.随机存取 B.顺序存取 C.索引存取 D.散列存取5.算法分析的目的是1,算法分析的两个主要方面其一是指2,其二是指正确性和简单性。

1 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性2 A.空间复杂度和时间复杂度 B.研究算法中的输入和输出的关系C.可读性和文档性D.数据复杂性和程序复杂性k6.计算机算法指的是1,它必须具备输入、输出和2等5个特性。

1 A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法2 A.可执行性、可移植性和可扩充性 B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性7.线性表的逻辑顺序与存储顺序总是一致的,这种说法。

A.正确 B.不正确8线性表若采用链式存储结构时,要求内存中可用存储单元的地址。

A.必须连续的B.部分地址必须连续的C.一定是不续的D连续不连续都可以9.以下的叙述中,正确的是。

A.线性表的存储结构优于链式存储结构 B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出10.每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。

数据结构查找与排序练习题答案——查找排序练习题答案

数据结构查找与排序练习题答案——查找排序练习题答案

数据结构查找与排序练习题答案一、选择题1.对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( ) A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/22.适用于折半查找的表的存储方式及元素排列要求为( )A.链接方式存储,元素无序 B.链接方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序3.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( )A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减4.有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为()。

A.35/12 B.37/12 C.39/12 D.43/125.折半查找的时间复杂性为()A. O(n2)B. O(n)C. O(nlogn)D. O(logn)6.对有18个元素的有序表作折半查找,则查找A[3]的比较序列的下标为()A.1,2,3B.9,5,2,3C.9,5,3D.9,4,2,37.设有序表的关键字序列为{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用二分查找法查找健值为84的结点时,经()次比较后查找成功。

A.2B. 3C. 4D.128.用n个键值构造一棵二叉排序树,最低高度为()A.n/2B.、nC.lognD.logn+19.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( ) 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.设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key% 13,散列地址为1的链中有()个记录。

南开24秋学期《数据结构》作业参考一

南开24秋学期《数据结构》作业参考一

24秋学期《数据结构》作业参考1.堆的形状是一棵()选项A:二叉排序树选项B:满二叉树选项C:完全二叉树选项D:平衡二叉树参考答案:C2.用邻接表表示图进行深度优先遍历时,通常是采用()来实现算法的选项A:栈选项B:队列选项C:树选项D:图参考答案:A3.栈中元素的进出原则是()选项A:先进先出选项B:后进先出选项C:栈空则进选项D:栈满则出参考答案:B4.若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为()选项A:79,46,56,38,40,84选项B:84,79,56,38,40,46选项C:84,79,56,46,40,38选项D:84,56,79,40,46,38参考答案:B5.有8个结点的无向图最多有()条边选项A:14选项B:28选项C:56选项D:112参考答案:B6.链表是一种采用存储结构存储的线性表选项A:顺序选项B:链式选项C:星式选项D:网状参考答案:B7.下列关键字序列中,()是堆选项A:16,72,31,23,94,53选项B:94,23,31,72,16,53选项C:16,53,23,94,31,72选项D:16,23,53,31,94,72参考答案:D8.折半查找有序表(4,6,10,12,20,30,50,70,88,100)。

若查找表中元素58,则它将依次与表中()比较大小,查找结果是失败。

选项A:20,70,30,50选项B:30,88,70,50选项C:20,50选项D:30,88,50参考答案:A9.已知图的邻接矩阵,根据算法,则从顶点0出发,按深度优先遍历的结点序列是()选项A:0 2 4 3 1 5 6选项B:0 1 3 5 6 4 2。

数据结构作业题

数据结构作业题

数据结构作业题(总15页) -本页仅作为预览文档封面,使用时请删除本页-第一章1、设n为正整数,利用大"O"记号,将下列程序段的执行时间表示为n的函数。

(1) i=1; k=0;while(i<n){ k=k+10*i;i++;}(2) i=0; k=0;do{k=k+10*i; i++;}while(i<n);(3) i=1; j=0;while(i+j<=n){if (i>j) j++;else i++;}(4)x=n; 编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。

当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。

两个栈均从两端向中间增长。

当向第0号栈插入一个新元素时,使top[0]增1得到新的栈顶位置,当向第1号栈插入一个新元素时,使top[1]减1得到新的栈顶位置。

当top[0]+1 == top[1]时或top[0] == top[1]-1时,栈空间满,此时不能再向任一栈加入新的元素。

试定义这种双栈(Double Stack)结构的类型定义,并实现初始化、判栈空、判栈满、插入、删除算法。

0 m-1【提示】类型定义:#define m 100;Typedef int dsType;试利用算符优先法,画出对如下中缀算术表达式求值时运算符栈和操作数栈的变化。

a +b * (c - d) – e# (#表示结束符)第四章设有模式串T1,T2,T1=‘aaab’,T2=‘abcabaa’,目标串s为‘abc aaabbabcabaacbacba’,(1)计算模式串T1的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。

(2)计算模式串T2的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。

数据结构作业答案

数据结构作业答案

1:41.如果待排序序列中两个数据元素具有相同的值,在排序后它们的位置发生颠倒,则称该排序是不稳定的。

()就是不稳定的排序方法。

1.起泡排序2.归并排序3.直接插入法排序4.简单选择排序2:8 带头结点的单链表head为空的判断条件是( )。

1.head==NULL2.head->next==NULL3. head->next==head4. head!=NULL3:9 在单链表中增加头结点的目的是为了( )。

1.方便运算的实现2.用于标识单链表3.使单链表中至少有一个结点4.用于标识起始结点的位置4:46 下列四个关键字序列中,( )不是堆。

1. {05,23,16,68,94,72,71,73}2.{05,16,23,68,94,72,71,73}3. {05,23,16,73,94,72,71,68}4.{05,23,16,68,73,71,72,94}5:20.设输入序列为1,2,3,4,5,借助一个栈可以得到的输出序列是( )。

1.2,4,1,3,52.3,4,1,5,23.3,2,4,1,54.4,1,3,2,56:50 对有n个记录的表按记录键值有序建立二叉排序树,在这种情况下,其平均查找长度的量级为()。

1.O(n)2.O(nlog2n)3.O(1)4. O(log2n)7:37.用分划交换排序方法对包含有n个关键的序列进行排序,最坏情况下执行的时间杂度为( )。

1.O(n)2. O(log2n)3.O(nlog2n)4. O(n2)8:38.邻接表的存储结构下图的深度优先遍历类似于二叉树(树)的( )。

1.先序遍历2.中序遍历3.后序遍历4.按层遍历9:48 对有n个记录的有序表采用二分查找,其平均查找长度的量级为()。

1. O(log2n)2.O(nlog2n)3.O(n)4. O(n2)10:2 线性表是具有n个( )的有限序列。

1.表元素2.字符3.数据元素4.信息项11:15 在一个单链表中,若删除(*p)结点的后继结点,则执行( )。

数据结构作业

数据结构作业

数据结构作业一、引言数据结构是计算机科学中的重要概念,它涉及组织、存储和管理数据的方法和原则。

在计算机科学领域,数据结构是实现算法和程序设计的基础。

本文将介绍数据结构作业中常见的问题和解决方案。

二、线性数据结构1. 数组数组是一种线性数据结构,它能够存储相同类型的元素。

在数据结构作业中,数组常用于解决需要顺序访问元素的问题。

例如,计算一个数组的平均值或找出最大值。

2. 链表链表也是一种常见的线性数据结构。

它由节点组成,每个节点保存一个元素和一个指向下一个节点的引用。

链表常用于需要频繁插入和删除操作的场景。

在数据结构作业中,我们可能需要实现链表的插入、删除、反转等操作。

三、非线性数据结构1. 树树是一种分层的非线性数据结构。

它由节点和边组成,节点之间存在层次关系。

树常用于表达层级结构,比如文件系统或组织架构。

在数据结构作业中,我们可能需要实现树的遍历,例如前序遍历、中序遍历和后序遍历。

2. 图图是一种由节点和边组成的非线性数据结构。

节点之间的边可以表示任意关系。

图常用于表示网络、社交关系等复杂结构。

在数据结构作业中,我们可能需要实现图的遍历、最短路径算法等操作。

四、常见数据结构算法1. 查找算法查找算法用于在数据结构中查找一个特定的元素。

常见的查找算法包括线性查找、二分查找和哈希查找。

在数据结构作业中,我们可能需要根据特定要求选择合适的查找算法。

2. 排序算法排序算法是将一组元素按照特定顺序排列的算法。

常见的排序算法包括冒泡排序、插入排序和快速排序。

在数据结构作业中,我们需要选择合适的排序算法,以便高效地对数据进行排序操作。

五、应用实例数据结构的应用非常广泛,它在各个领域都有重要作用。

以下是一些数据结构在实际应用中的例子。

1. 括号匹配在编程中,我们经常需要检查括号是否匹配。

这可以通过使用栈这种数据结构来实现。

我们可以遍历字符串,每当遇到左括号时,将其入栈;每当遇到右括号时,将栈顶元素出栈并进行匹配。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2如果希望循环队列中的元素都能得到利用,则需要设置一个标志域tag,并以tag的值为0或1来区别尾指针和头指针相同时的队列的状态是“空”还是“满”。试编写与此结构相应得入队列和出队列的算法。
提示:标志位tag的初值置“0”。一旦元素入队列使rear==front时,需置tag为“1”;反之,一旦元素出队列使rear==front时,需置tag为“0”,以便使下一次进行入队列或出队列操作时(此时rear==front),可由标志位tag的值来区别队列当时的状态时“空”还是“满”。
(2)输出最小值后,如何得到次小值?画出相应的结果图。
intlength; //当前长度
int listsize; //当前分配的存储容量
}SqList; //顺序表类型
typedefstruct LNode{
ElemType data;
structLNode *next;
}LNode,*LinkList; //单链表类型
2.1指出以下算法中的错误和低效(即费时)之处,并将它改写为一个既正确又高效的算法。
2.4已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一个高效的算法,删除表中所有值大于mink且小于maxk的元素(若表中存在这样的元素)同时释放被删结点空间,并分析你的算法的时间复杂度(注意:mink和maxk是给定的两个参变量,它们的值可以和表中的元素相同,也可以不同)。
2.5假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表或B表)的结点空间构造C表。
10.3请回答下列关于堆的问题:
(1)堆的存储表示是顺序的,还是链式的?
(2)设有一个小顶堆,其最大值元素可能在什么位置?
10.4已知待排序的序列为(503,87,512,61,908,170,897,275,653,462),试完成下列各题:
(1)根据以上序列建立一个堆(画出第一步和最后堆的结果图),希望先输出最小值。
Status DeleteK(SqList &a,intI,int k) {
//本过程从顺序表a中删除第i个元素起的k个元素
if(i<1 || k<0 || i+k>a.length) return INFEASIBLE; //参数不合法
else {
for( count=1;count<k; count++) {
第七章图
7.1从占用的存储空间来看,对于稠密图和稀疏图,采用邻接矩阵和邻接表哪个更好些?
7.2给出图7.1所示的无向图G1的邻接矩阵和邻接表两种存储结构。并在给定的邻接表基础上,指出从顶点1出发的深度优先遍历和广度优先遍历序列。
7.3使用普利姆算法和克鲁斯卡尔算法构造如图7.2所示的图G2的一棵最小生成树。
}
return s;
}
思考题:
1、下ቤተ መጻሕፍቲ ባይዱ程序段的时间复杂度是多少?
i=0; s=0;
while(s<n){
i=i+1;
s=s+i;
}
2、假设n为2的乘幂,并且n>2,试求下列算法的时间复杂度及变量count的值(以n的函数形式表示)。
int Time(int n)
{
count=0; x=2;
while(x<n/2){
(2)用直接选择排序。试以排序码序列的变化描述形式说明排序全过程(动态过程)。
(3)直接插入排序算法和直接选择排序算法的稳定性如何?
10.2请简单叙述希尔排序的基本思想。设有一组关键字序列为{98,36,-9,0,47,23,1,8,10,7}进行希尔排序,给出的步长(也称增量序列)依次是4,2,1,则排序需多少趟?写出第一趟结束后,关键字的排列次序。
数据结构作业
第一章绪论
1.1有下列几种用二元组表示的数据结构,画出它们分别对应的图形表示,并指出它们分别属于何种结构。
(1)A = (K,R),其中:
K = {a,b,c,d,e,f,g,h}
R = {r}
r = {<a,b>,<b,c>,<c,d>,<d,e>,<e,f>,<f,g>,<g,h>}
这里的圆括号对表示两结点是双向的。
(4)D = (K,R),其中:
K = {48,25,64,57,82,36,75}
R = {r1,r2}
r1 = {<25,36>,<36,48>,<48,57>,<57,64>,<64,75>,<75,82>}
r2 = {<48,25>,<48,64>,<64,57>,<64,82>,<25,36>,<82,75>}
{int p=1,s=0;
for(int i=1; i<=n; i++){
p*=i;
s+=p;
}
return s;
}
(3)int sum2(int n)
{
int s=0;
for(int i=1; i<=n; i++){
int p=1;
for(int j=1; j<=i; j++)
p*=j;
s+=p;
1.2指出下列各算法的功能并求出其时间复杂度。
(1)int Prime(int n)
{
int i = 2;
int x=(int)sqrt(n);
while(i<=x){
if(n%i==0) break;
i++;
}
if (i>x) return 1;
else return 0;
}
(2)int sum1(int n)
6.1三个结点的树和二叉树的基本形态有何区别?
6.2已知一棵树的边的集合表示为:{(L,N),(G,K),(G,L),(G,M),(B,E),(B,F),(D,G),(D,H),(D,I),(D,J),(A,B),(A,C),(A,D)}。请画出这棵树,并回答以下问题:
(1)树的根结点是哪个?哪些是叶子结点?哪些是分支结点?
9.2设数据集合d={1,12,5,8,3,10,7,13,9},试完成下列各题:
(1)依次取d中各数据,构造一棵二叉排序树bt;
(2)如何依据此二叉树bt得到d的一个有序序列;
(3)画出在二叉树bt中删除“12”后的树结构。
(4)对原二叉排序树,求成功和不成功时的平均查找长度。
9.3设有一组关键字{19,1,23,14,55,20,84,27,68,11,10,77},采用散列函数:
(2)树的度是多少?各个结点的度是多少?
(3)树的深度是多少?各个结点的层数是多少?
(4)对于G结点,它的双亲结点、祖先结点、子女结点、子孙结点、兄弟和堂兄弟分别是哪些?
6.3已知完全二叉树的第7层有10个叶子结点,则整个二叉树的结点数最多是多少?给出计算过程。
6.4设某二叉树的前序遍历序列为:ABCDEFGIH,中序遍历序列为:BCAEDGHFI。
7.4如图7.3所示的AOE网,求:
(1)每项活动ai的最早开始时间e(ai)和最迟开始时间l(ai)。
(2)完成此工程最少需要多少天(设弧上权值为天数)?
(3)哪些是关键活动?
(4)是否存在某项活动,当其提高速度后能使整个工程缩短工期?
第9章查找
9.1画出对长度为10的有序表进行折半查找的一棵判定树,并求其等概率时查找成功的平均查找长度。
(2)B = (K,R),其中:
K = {a,b,c,d,e,f,g,h}
R = {r}
r = {<d,b>,<d,g>,<d,a>,<b,c>,<g,e>,<g,h>,<e,f>}
(3)C = (K,R),其中:
K = {1,2,3,4,5,6}
R = {r}
r = {(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)}
H(key)= key % 13
采用开放地址法的线性探测再散列方法解决冲突,试在0~18的散列地址空间中对该关键字序列构造散列表。
第10章
10.1设待排序的记录共7个,排序码分别是8,3,2,5,9,1,6,要求按递减顺序排序。
(1)用直接插入排序。试以排序码序列的变化描述形式说明排序全过程(动态过程)。
第五章数组与广义表
5.1设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分(如下图)按行存放在一维数组B[1,n(n-1)/2]中,对下三角部分中任一元素ai,j(i≥j),在一维数组B中下标k的值为多少?给出计算过程。
5.2设稀疏矩阵如下图所示:
要求给出该稀疏矩阵的三元组顺序表表示法的图示。
第六章树和二叉树
x*=2; count++;
}
return(count);
}
第二章线性表
算法设计题:本章涉及的顺序表和线性链表的类型定义如下:
# define LIST_INIT_SIZE 100
# define LISTINCREMENT 10
typedefstruct{
ElemType *elem; //存储空间基址
(1)试画出该二叉树。
(2)画出该二叉树的中序线索树。
6.5假设用于通信的电文由字符集{a,b,c,d,e,f,g}中的字母构成。它们在电文中出现的频率分别为{0.31, 0.16, 0.1, 0.08, 0.11, 0.2, 0.04}。
相关文档
最新文档