数据结构课程三套作业及答案分析
数据结构课程课后习题答案及解析
《数据结构简明教程》练习题及参考答案练习题11. 单项选择题(1)线性结构中数据元素之间是()关系。
A.一对多B.多对多C.多对一D.一对一答:D(2)数据结构中与所使用的计算机无关的是数据的()结构。
A.存储B.物理C.逻辑D.物理和存储答:C(3)算法分析的目的是()。
A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性答:C(4)算法分析的两个主要方面是()。
A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性答:A(5)计算机算法指的是()。
A.计算方法B. 排序方法C.求解问题的有限运算序列D.调度方法答:C(6)计算机算法必须具备输入、输出和()等5个特性。
A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性答:B2. 填空题(1)数据结构包括数据的①、数据的②和数据的③这三个方面的内容。
答:①逻辑结构②存储结构③运算(2)数据结构按逻辑结构可分为两大类,它们分别是①和②。
答:①线性结构②非线性结构(3)数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。
专业资料整理分享数据结构简明教程答:①数据元素 ②关系 (4)在线性结构中,第一个结点 ① 前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点 ② 后继结点,其余每个结点有且只有1个后继结点。
答:①没有 ②没有 (5)在树形结构中,树根结点没有 ① 结点,其余每个结点有且只有 ② 个前驱结点;叶子结点没有 ③ 结点,其余每个结点的后继结点数可以是 ④ 。
答:①前驱 ②1 ③后继 ④任意多个(6)在图形结构中,每个结点的前驱结点数和后继结点数可以是( )。
答:任意多个(7)数据的存储结构主要有四种,它们分别是 ① 、 ② 、 ③ 和 ④ 存储结构。
答:①顺序 ②链式 ③索引 ④哈希(8)一个算法的效率可分为 ① 效率和 ② 效率。
《数据结构》作业3参考答案
= 15
所以 (3,3) = (0,0) + 3 × 15 + 3 = 644 + 45 + 3 = 692
4.9 习题答案
第一步,计算 P 的 next 值,如图所示。
j
0
1
P
a
a
next[j]
-1
0
第二步,用 KMP 算法进行快速匹配,如下图。
0
1
234567
T
a
b
abbaab
P
a
a
b
j=1,next[1]=0
图 4.10(1)
(2).答案:
( , , ( ) , ( ))的图形表示和存储表示如图所示。
图 4.10(2)
4.11 习题答案
(1) Head(Tail(Tail(L1))) (2) Head(Head(Tail(L2))) (3) Head(Head(Tail(Tail(Head(L3))))) (4) Head(Head(Tail(Tail(L4)))) (5) Head(Tail(Head(L5))) (6) Head(Head(Tail(Head(Tail(L6)))))
a
a
j=0,next[0]=-1
aab
j=1,next[1]=0
aab
j=0,next[0]=-1
aab
ห้องสมุดไป่ตู้
j=0,next[0]=-1
aa
图 4.9
2 b 1 89 aA
b j=3,成功
4.10 习题答案 (1).答案:
( ( ), ( ), ( , ( , , )))的图形表示和存储表示如图所示。
数据结构作业3参考答案答案作业三数据结构作业题参考答案作业3及答案3及答案作业及答案
数据结构作业题及参考答案
东北农业大学网络教育学院数据结构作业题(一)、选择题(每题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 树中,每个结点的左子树高度与右子树高度之差的绝对值不超过 ________ 。
国家开放大学电大《数据结构》网络课形考任务3作业及答案
国家开放大学电大《数据结构》网络课形考任务3作业及答案档任务3一、单项选择题(每小题2分,共38分)题目1 假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为()。
选择一项: A、47 B、16 C、17 D、15 题目2 二叉树第k层上最多有()个结点。
选择一项: A、2k-l B、2k-l C、2k-l D、2k 题目3 将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号为()。
选择一项: A、36 B、35 C、34 D、33 题目4 如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为()。
选择一项: A、二叉树 B、哈夫曼树 C、完全二叉树 D、平衡二叉树在一棵度具有5层的满二又树中结点总数为( )o 选择一项: A、16 B、3231 D、33 题目6 一棵完全二叉树共有6层,且第6层上有6个结点,该树共有()个结点。
选择一项: A、31 B、37 C、38 D、72 题目7 利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树中所有叶子结点中的最长带权路径长度为(在一棵树中,()没有前驱结点。
)、选择一项: A、18 B、16 C、30 D、12 题目8 选择一项: A、树根结点 B、叶结点 C、空结点 D、分支结点题目9 设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树结点中共有20个指针域为空,则该树有()个叶结点。
选择一项: B、10 C、21 D、22 题目10 在一个图G中,所有顶点的度数之和等于所有边数之和的()倍。
选择一项: A、2 B、1 C、4 D、1/2 题目11 邻接表是图的一种()<、选择一项: A、链式存储结构 B、顺序存储结构C、散列存储结构 D、索引存储结构题目12 图的深度优先遍历算法类似于二叉树的()遍历。
数据结构习题和答案及解析
数据结构习题和答案及解析数据结构是计算机科学中非常重要的一个领域,它关注数据的存储、组织和管理方式。
在学习数据结构的过程中,遇到习题是必不可少的,通过解答这些习题可以更好地理解和掌握数据结构的概念和应用。
以下是一些常见的数据结构习题及其答案和解析,希望可以帮助读者更好地学习和理解数据结构。
习题一:栈的应用题目描述:设计一个栈,使其具有获取栈中最小元素的操作。
解答及解析:可以通过两个栈来实现,一个栈用于存储数据,另一个栈用于存储当前最小元素。
在入栈时,如果新的元素比当前最小元素小,则将新元素同时入栈到数据栈和最小栈;在出栈时,如果当前出栈元素与最小栈的栈顶元素相同,则同时出栈。
这样,最小栈的栈顶元素始终为当前栈的最小元素。
习题二:队列的应用题目描述:设计一个队列,使其具有获取队列中最大元素的操作。
解答及解析:可以通过两个队列来实现,一个队列用于存储数据,另一个队列用于存储当前最大元素。
在入队时,如果新的元素比当前最大元素大,则将新元素同时入队到数据队列和最大队列;在出队时,如果当前出队元素与最大队列的队首元素相同,则同时出队。
这样,最大队列的队首元素始终为当前队列的最大元素。
习题三:链表的操作题目描述:给定一个链表,删除链表中倒数第n个节点,并返回链表的头节点。
解答及解析:使用双指针法来解决该问题。
首先让一个指针从链表的头节点向前移动n+1步,然后再让另一个指针从链表的头节点开始移动。
这样两个指针之间的间隔为n,当第一个指针到达链表末尾时,第二个指针指向的节点就是倒数第n个节点的前一个节点。
接着,将第二个指针指向的节点的next指针指向下下个节点,完成删除操作。
习题四:树的遍历题目描述:给定一个二叉树,按照中序遍历的顺序返回其节点值的集合。
解答及解析:采用递归的方式进行中序遍历,先遍历左子树,然后访问根节点,最后遍历右子树。
对于任意一个节点,递归遍历其左子树,将节点值添加到集合中。
然后访问该节点,并将节点值添加到集合中。
数据结构(第3版)习题及实验参考答案14438
附录习题及实验参考答案习题1参考答案1.1.选择题(1). A. (2). A. (3). A. (4). B.,C. (5). A. (6). A. (7). C. (8). C. (9). B. (10.)A.1.2.填空题(1). 数据关系(2). 逻辑结构物理结构(3). 线性数据结构树型结构图结构(4). 顺序存储链式存储索引存储散列表(Hash)存储(5). 变量的取值范围操作的类别(6). 数据元素间的逻辑关系数据元素存储方式或者数据元素的物理关系(7). 关系网状结构树结构(8). 空间复杂度和时间复杂度(9). 空间时间(10). Ο(n)1.3 名词解释如下:数据:数据是信息的载体,是计算机程序加工和处理的对象,包括数值数据和非数值数据。
数据项:数据项指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。
数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,一个数据元素可由若干个数据项组成。
数据逻辑结构:数据的逻辑结构就是指数据元素间的关系。
数据存储结构:数据的物理结构表示数据元素的存储方式或者数据元素的物理关系。
数据类型:是指变量的取值范围和所能够进行的操作的总和。
算法:是对特定问题求解步骤的一种描述,是指令的有限序列。
1.4 语句的时间复杂度为:(1) Ο(n2)(2) Ο(n2)(3) Ο(n2)(4) Ο(n-1)(5) Ο(n3)1.5 参考程序:main(){int X,Y,Z;scanf(“%d, %d, %d”,&X,&Y,Z);if (X>=Y)if(X>=Z)if (Y>=Z){ printf(“%d, %d, %d”,X,Y,Z);}else{ printf(“%d, %d, %d”,X,Z,Y);}else{ printf(“%d, %d, %d”,Z,X,Y);}elseif(Z>=X)if (Y>=Z){ printf(“%d, %d, %d”,Y,Z,X);}else{ printf(“%d, %d, %d”,Z,Y,X);}else{ printf(“%d, %d, %d”,Y,X,Z);}}1.6 参考程序:main(){int i,n;float x,a[],p;printf(“\nn=”);scanf(“%f”,&n);printf(“\nx=”);scanf(“%f”,&x);for(i=0;i<=n;i++)scanf(“%f ”,&a[i]);p=a[0];for(i=1;i<=n;i++){ p=p+a[i]*x;x=x*x;}printf(“%f”,p)’}习题2参考答案2.1选择题(1). C. (2). B. (3). B. (4). B. 5. D. 6. B. 7. B. 8. A. 9. A. 10. D.2.2.填空题(1). 有限序列(2). 顺序存储和链式存储(3). O(n) O(n)(4). n-i+1 n-i(5). 链式(6). 数据指针(7). 前驱后继(8). Ο(1) Ο(n)(9). s->next=p->next; p->next=s ;(10). s->next2.3. 解题思路:将顺序表A中的元素输入数组a,若数组a中元素个数为n,将下标为0,1,2,…,(n-1)/2的元素依次与下标为n,n-1,…, (n-1)/2的元素交换,输出数组a的元素。
数据结构习题参考答案与解析
习题1 参考答案1至8题答案略。
9.(1)【解】该逻辑结构为线性结构,其图形表示如下:(2)【解】该逻辑结构为树型结构,其图形表示如下:(3)【解】该逻辑结构为图型结构,其图形表示如下:(4)【解】该逻辑结构为线性结构,其图形表示如下:10.【解】该图书库存管理系统所要处理的数据对象为图书,所以该问题中涉及的数据元素为图书,设数据元素类型为bookType 类型。
每个数据元素应包含的数据项有图书编号、书名、作者、出版社、出版日期等。
可用一个表格(如下表)的形式表示图书间的逻辑关系,即该问题数学模型可采用简单的线性结构来表示。
根据问题需求功能目标,此模型的所需的主要处理操作有插入、删除、查找和修改等基本操作。
所以,现用抽象数据类型bookList 表示问题模型,其逻辑结构与基本操作的定义如下: (1)逻辑结构bookList=( D, {r} )D={b i | b i 为bookType 类型的元素,i=1,2,3, ....., n ,n ≥0} r ={ <bk i ,b i+1>| i=1,2,…, n -1, n ≥0 } (2)基本操作 ①初始化操作函数:InitBookList(&BL)。
……初始条件:图书表BL 不存在。
操作结果:构造一个空的图书表BL 。
②求图书表长度操作函数:bookListLength(BL)。
初始条件:图书表BL 已存在。
操作结果:返回图书表BL 中所包含的数据元素(图书)的个数。
③取图书表中元素操作函数:getBook(BL, i, &b)。
初始条件:图书表BL 已存在,且1≤i ≤bookListLength(BL)。
操作结果:用b 返回图书表BL 中的第i 个数据元素的值。
④按编号查找操作函数:locateById(BL, id)。
初始条件:图书表BL 已存在,id 是给定的一个图书编号。
操作结果:返回图书表BL 中图书编号为id 的数据元素的位序,若这样的数据元素不存在,则返回0。
数据结构习题和答案及解析
⑷下面〔〕不是算法所必须具备的特性。
A 有穷性B 确切性C 高效性D 可行性【解答】C【分析】高效性是好算法应具备的特性。
⑸算法分析的目的是〔〕,算法分析的两个主要方面是〔〕。
A 找出数据结构的合理性B 研究算法中输入和输出的关系C 分析算法的效率以求改良D 分析算法的易读性和文档性E 空间性能和时间性能F 正确性和简明性G 可读性和文档性 H 数据复杂性和程序复杂性【解答】C,E3. 判断题⑴算法的时间复杂度都要通过算法中的根本语句的执行次数来确定。
【解答】错。
时间复杂度要通过算法中根本语句执行次数的数量级来确定。
⑵每种数据结构都具备三个根本操作:插入、删除和查找。
【解答】错。
如数组就没有插入和删除操作。
此题注意是每种数据结构。
⑶所谓数据的逻辑结构指的是数据之间的逻辑关系。
【解答】错。
是数据之间的逻辑关系的整体。
⑷逻辑结构与数据元素本身的内容和形式无关。
【解答】对。
因此逻辑结构是数据组织的主要方面。
⑸基于某种逻辑结构之上的根本操作,其实现是唯一的。
【解答】错。
根本操作的实现是基于某种存储结构设计的,因而不是唯一的。
【解答】⑴根本语句是k=k+10*i,共执行了n-2次,所以T(n)=O(n)。
⑵根本语句是k=k+10*i,共执行了n次,所以T(n)=O(n)。
⑶分析条件语句,每循环一次,i+j 整体加1,共循环n次,所以T(n)=O(n)。
⑷设循环体共执行T(n)次,每循环一次,循环变量y加1,最终T(n)=y,即:(T(n)+1)2≤n,所以T(n)=O(n1/2)。
⑸ x++是根本语句,所以5.设有数据结构〔D,R〕,其中D={1, 2, 3, 4, 5, 6},R={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)}。
试画出其逻辑结构图并指出属于何种结构。
【解答】其逻辑结构图如图1-3所示,它是一种图结构。
6. 为整数定义一个抽象数据类型,包含整数的常见运算,每个运算对应一个根本操作,每个根本操作的接口需定义前置条件、输入、功能、输出和后置条件。
数据结构第三次作业题及答案.doc
第3次作业一、填空题(本大题共30分,共10小题,每小题3分)1.具有8个顶点的无向图,边的总数最多为_______ o2.树在计算机内的表示方式有______ , ______ , _____ o3.设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素(包描对角线上元素)存放在n(n+l)个连续的存储单元中,则A[i][j]与A[0][0] Z间有 _______ 个数据元素。
4.队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是______ O5.在广义表的存储结构中,单元索结点与表元索结点有一个域对应不同,各自分别为______ 域和_______ 域。
6.构造连通网最小生成树的两个典型算法是______ O7.在一个稀疏矩阵中,每个非零元索所对应的三元组包括该元索的_________ 、和三项。
8.已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树有__________ 个叶子结点。
9.非空的单循环链表head的尾结点(由p指针所指)满足条件10.在哈希文件屮,处理冲突的方法通常有______ 、______ 、______ 和______ 四种。
二、算法设计题(本大题共20分,共2小题,每小题10分)1.回文是指止读反读均相同的字符序列,如〃abba〃和〃abdba"均是回文,但"good" 不是回文。
试写一个算法判定给定的字符向量是否为回文。
2.编写一个算法将一个头结点指针为pa的单链表A分解成两个单链表A和B,其头结点指针分别为g和pb,使得A链表小含有原链表AM序号为奇数的元索,而链表B屮含有原链表A屮序号为偶数的元索,且保持原来的相对顺序。
三、简答题(本大题共20分,共4小题,每小题5分)1.何时选用顺序表、何时选用链表作为线性表的存储结构为宜?2.一棵度为2的树与一棵二义树有何区别?3.指出下述程序段的功能是什么?void Demol( SeqStack *S, int m){ // 设DataType 为int 型SeqStack T; inti;InitStack (&T);while (! StackEmpty( S))if (( i二Pop(S)) !=m) Push( &T, i);while (! StackEmpty( &T)){i二Pop(&T); Push(S, i);4.给定集合{15, 3, 14, 2, 6, 9, 16, 17}(1)(3分)用□表示外部结点,用O表示内部结点,构造相应的huffman 树:(2)(2分)计算它的带权路径长度:(3)(2分)写出它的huffman编码:(4)(3分)huffman编码常用来译码,请用语言叙述写出其译码的过程。
2021数据结构作业3 树与二叉树 参考答案
2021数据结构作业3 树与二叉树参考答案2021数据结构作业3-树与二叉树-参考答案作业3.树非编程作业:1.请分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。
参考答案:具备3个结点的树:具有3个结点的二叉树:2.未知二叉树的先序结点序列就是eabdcfhgikj,中序结点序列就是abcdefghijk,请构造二叉树,并写出其层次遍历序列和后序遍历序列。
参考答案:eaf层次:eafbhdgickjbh后序---cdbagjkihfedcgikj3.将下图所示的森林转换成一棵二叉树。
agkbcdhijlef参考答案:转换成的二叉树为:abcdghikljef4.将下图所示的二叉树还原成树或森林。
abcdlfeghmknji参考答案:切换为森林:aegbcdfhijlmnk5.假设用于通信的电文由7个字母组成{a,b,c,d,e,f,g},字母在电文中出现的频率分别为0.17、0.09、0.12、0.06、0.32、0.03、0.21。
精义这7个字母设计哈夫曼编码,并排序其有向路径长度wpl。
参考答案:哈夫曼树为:0.1810.39g0.610.210.290.32e0.17a0.090.09b0.12wpl=4*(0.03+0.06)+3*(0.12+0.17+0.09)+2*(0.32+0.21)=2.56a:101b:001c:100d:0001e: 11f:0000g:01编程作业:二叉树采用二叉链表存储,试设计算法实现:1.createbt(bitree&t):从键盘输入二叉树的先序结点序列字符串(以”#”代表空结点),创建其二叉链表;如输入:ab#d##ce#f###则建立如下图所示二叉树的二叉链表2.exchangebt(bitreet):设计递归算法实现二叉树中所有结点的左右孩子交换;3.countleaf(bitreet,telemtypex,int&count):统计数据以值x的结点为根的子树中叶子结点的数目;4.dispbitree(bitreet,intlevel):按树状打印二叉树。
数据结构(第3版)习题答案
void initStack(Stack *S) /*初始化空栈*/
{ S->top=-1; }
一个元素出栈后即进入队列Q,若6个元素出队的序列为e2、e4、e3、e6、e5和e1,则栈S
的容量至少应该为(C)。
A.6
B.4
C.3
D.2
(3)设栈的输入序列为1、2、3…n,若输出序列的第一个元素为n,则第i个输出的元素为
(B)。
A.不确定
B.n−i+1
C.i
D.n−i
(4)在一个长度为n的顺序表中删除第i个元素(1<=i<=n)时,需向前移动(A)个
#define MAX 26
typedef struct s{
char a[MAX];
int top;
}Stack;
/*定义一些全局变量*/
Stack S; /*定义全局性的栈*/
char d[MAX],seq[MAX]; /*d[MAX]用于存储原始入栈序列,seq[MAX]用于存储输出序列*/
int len; /*定义将通过栈的元素个数*/
所以它们是两种不同的数据结构。
1.4线性结构的特点是什么?非线性结构的特点是什么?
【答】:线性结构元素之间的关系是一对一的,在线性结构中只有一个开始结点和一个终端结
点,其他的每一个结点有且仅有一个前驱和一个后继结点。而非线性结构则没有这个特点,元
素之间的关系可以是一对多的或多对多的。
1.5数据结构的存储方式有哪几种?
第2章
线性表及其顺序存储
2.1选择题
(1)表长为n的顺序存储的线性表,当在任何位置上插入或删除一个元素的概率相等时,
中南大学《数据结构》课程作业(在线作业)三及参考答案
(D) 40, 38, 46, 84, 56, 79
参考答案:
(C)
24.
对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列进行同样的排序操作,直到子序列为空或只剩下一个元素为止。这样的排序方法是()。
(A)直接选择排序(B)直接插入排序(C)快速排序(D)冒泡排序
参考答案:
(C)
5.
快速排序在下列哪种情况下最易发挥其长处()。
(A)被排序的数据中含有多个相同排序码
(B)被排序的数据已基本有序
(C)被排序的数据完全无序
(D)被排序的数据中的最大值和最小值相差悬殊
参考答案:
(C)
6.
能进行二分查找的线性表,必须以()。
(A)顺序方式存储,且元素按关键字有序
(B)链式方式存储,且元素按关键字有序
(一)单选题
1.
堆是一种()排序。
(A)插入(B)选择(C)交换(D)归并
参考答案:
(B)
2.
用某种排序方法对关键字序列进行排序时,序列的变化情况如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84则采用的方法是()。
(C)顺序方式存储,且元素按关键字分块有序
(D)链式方式存储,且元素按关键字分块有序
参考答案:
(A)
7.
为使平均查找长度达到最小,当由关键字集合构建二叉排序树时,第一个插入的关键字应为()。
(A) 5 (B) 37 (C) 41 (D) 62
参考答案:
(B)
8.
数据结构课后习题详解(超完整超经典)
数据结构课后习题详解(超完整超经典)第1章绪论1.1简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。
解:数据是对客观事物的符号表示。
在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据对象是性质相同的数据元素的集合,是数据的一个子集。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
存储结构是数据结构在计算机中的表示。
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。
是对一般数据类型的扩展。
1.2试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。
解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。
一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。
抽象数据类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。
在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。
1.3设有数据结构(D,R),其中Dd1,d2,d3,d4,Rr,rd1,d2,d2,d3,d3,d4试按图论中图的画法惯例画出其逻辑结构图。
解:1.4试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。
解:数据对象:D={r,i|r,i为实数}数据关系:R={}基本操作:操作结果:构造一个复数C,其实部和虚部分别为re和imDetroyCmople某(&C)操作结果:销毁复数CGet(C,k,&e)操作结果:用e返回复数C的第k元的值操作结果:改变复数C的第k元的值为e操作结果:如果复数C的两个元素按升序排列,则返回1,否则返回0Put(&C,k,e)IAcending(C)ADTRationalNumber{数据对象:D={,m|,m为自然数,且m不为0}数据关系:R={}基本操作:InitRationalNumber(&R,,m)操作结果:构造一个有理数R,其分子和分母分别为和mDetroyRationalNumber(&R)操作结果:销毁有理数RGet(R,k,&e)操作结果:用e返回有理数R的第k元的值操作结果:改变有理数R 的第k元的值为e操作结果:若有理数R的两个元素按升序排列,则返回1,否则返回0操作结果:若有理数R的两个元素按降序排列,则返回1,否则返回0操作结果:用e返回有理数R的两个元素中值较大的一个操作结果:用e 返回有理数R的两个元素中值较小的一个Put(&R,k,e)IAcending(R)IDecending(R)Ma某(R,&e)Min(R,&e) IDecending(C)操作结果:如果复数C的两个元素按降序排列,则返回1,否则返回0操作结果:用e返回复数C的两个元素中值较大的一个操作结果:用e 返回复数C的两个元素中值较小的一个Ma某(C,&e)Min(C,&e) }ADTRationalNumber(1)product=1;i=1;while(i<=n){product某=i;i++;}(2)i=0;do{i++;}while((i!=n)&&(a[i]!=某));(3)witch{cae某1.5试画出与下列程序段等价的框图。
(完整版)数据结构课后习题答案
第1章绪论1 •简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。
答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。
如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。
数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。
在有些情况下,数据元素也称为元素、结点、记录等。
数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。
数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。
例如,学生基本信息表中的学号、姓名、性别等都是数据项。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
例如:整数数据对象是集合N={0,士1,士2,…},字母字符数据对象是集合C={ ‘ A', ‘ B…,‘ Z,‘ a'b ',…,‘ z ' },学生基本信息表也可是一个数据对象。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。
逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
存储结构:数据对象在计算机中的存储表示,也称为物理结构。
抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。
具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。
2 •试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。
答案:例如有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。
每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程作业_A一、单选题。
1.(7分)对完全二叉树叙述正确的是(C)。
A. 完全二叉树就是满二叉树B. 完全二叉树和满二叉树编号不对应C. 完全二叉树同一层上左子树未满不会有右子树D. 以上都不正确知识点:第六章解析第六章第二节二叉树的性质2.(7分)堆的形状是一棵(C)。
A. 二叉排序树B. 满二叉树C. 完全二叉树D. 一般的二叉树知识点:第十章解析第十章第四节堆排序3.(7分)设一棵完全二叉树中有65个结点,则该完全二叉树的深度为(B)。
A. 8B. 7C. 6D. 5知识点:第六章解析第六章第六节二叉树的性质4.(7分)以下数据结构中哪一个是非线性结构?(D)A. 队列B. 栈C. 线性表D. 二叉树知识点:第一章解析第一章第二节综合题目5.(7分)线性表的顺序存储结构是一种?的存储结构(A)。
A. 随机存取B. 顺序存取C. 索引存取D. 散列存取知识点:第二章解析第二章第二节综合题目6.(7分)带头节点的单链表L为空的判定条件是(C)。
A. L = =nullB. L->data= =nullC. L->next= =nullD. L->next= =data知识点:第二章解析第二章第三节线性链表7.(7分)设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45为基准而得到一趟快速排序的结果是(C)。
A. 40,42,45,55,80,83B. 42,40,45,80,85,88C. 42,40,45,55,80,85D. 42,40,45,85,55,80知识点:第十章解析第十章第三节综合题目8.(7分)设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为(A)。
A. 10,15,14,18,20,36,40,21B. 10,15,14,18,20,40,36,21C. 10,15,14,20,18,40,36,2lD. 15,10,14,18,20,36,40,21知识点:第十章解析第十章第三节综合题目9.(7分)设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为(C)。
A. 2,3,5,8,6B. 3,2,5,8,6C. 3,2,5,6,8D. 2,3,6,5,8知识点:第十章解析第十章第三节综合题目10.(7分)设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(A)。
A. p->next=p->next->nextB. p=p->nextC. p=p->next->nextD. p->next=p知识点:第二章解析第二章第三节线性链表二、判断。
1.(6分)栈和队列都是操作受限的线性表。
答案:正确。
解析第三章综合题目2.(6分)分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。
答案:正确。
解析第九章第一节索引顺序表的查找3.(6分)数据项是数据的基本单位。
答案:错误。
解析第一章第二节数据项4.(6分)希尔排序是一种稳定的排序方法。
答案:错误。
解析第十章第二节希尔排序5.(6分)二叉排序树上左子树上所有结点的值均小于它的根结点的值。
答案:正确。
解析第九章第二节二叉排序树和平衡二叉树数据结构课程作业_B一、单选题。
1.(7分)设某强连通图中有n个顶点,则该强连通图中至少有(C)条边。
A. n(n-1)B. n+1C. nD. n(n+1)知识点:第七章解析第七章第一节综合题目2.(7分)链式队列Q为空的判定条件(A)。
A. Q.front==Q.rearB. Q.front==QC. Q ==Q.rearD. 没有正确答案知识点:第三章解析第三章第四节队列的链式表示和实现3.(7分)设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为(A)。
A. O(n+e)B. O(n2)C. O(ne)D. O(n3)知识点:第七章解析第七章第二节邻接表4.(7分)图的广度优先遍历算法类似于二叉树的(D)。
A. 先序遍历B. 中序遍历C. 后序遍历D. 层次遍历知识点:第七章解析第七章第三节广度优先搜索5.(7分)图的邻接矩阵表示法适用于表示(C)。
A. 有向图B. 无向图C. 稠密图D. 稀疏图知识点:第七章解析第七章第二节数组表示法6.(7分)设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是(C)。
A. n-IB. n-1-IC. n+1-ID. 不能确定知识点:第三章解析第三章第一节栈的表示和实现7.(7分)顺序查找适用于存储结构为(B)的线性表。
A. 散列B. 顺序或者链式C. 压缩D. 索引知识点:第九章解析第九章第一节顺序表的查找8.(7分)线性表若采用链式存储结构时,要求内存中的可用存储单元的地址? (D)。
A. 必须连续B. 部分连续C. 一定不连续D. 可连续可不连续知识点:第二章解析第二章第三节综合题目9.(7分)设无向图G中有n个顶点,则该无向图的最小生成树上有(B)条边。
A. nB. n-1C. 2nD. 2n-1知识点:第七章解析第七章第四节最小生成树10.(7分)设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为(D)。
A. front=front+1B. front=(front+1)%(m-1)C. front=(front-1)%mD. front=(front+1)%m知识点:第三章解析第三章第四节队列的顺序表示和实现二、判断。
1.(6分)二叉排序树上左子树上所有结点的值均小于它的根结点的值。
答案:正确。
解析第九章第二节二叉排序树和平衡二叉树2.(6分)常用的图的遍历方法有深度优先遍历和广度优先遍历。
答案:正确。
解析第七章第三节综合题目3.(6分)数据项是数据的基本单位。
答案:错误。
解析第一章第二节数据项4.(6分)二维数组和多维数组均不是特殊的线性结构。
答案:错误。
解析第五章综合题目5.(6分)分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。
答案:正确。
解析第九章第一节索引顺序表的查找数据结构课程作业_C一、单选题。
1.(7分)设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩子结点的编号为(B)。
A. 2i+1B. 2iC. i/2D. 2i-1知识点:第六章解析第六章第六节二叉树的性质2.(7分)若采用孩子兄弟链表作为树的存储结构,则树的先根遍历应采用二叉树的(B)。
A. 层次遍历B. 先序遍历C. 中序遍历D. 后序遍历知识点:第六章解析第六章第四节树的存储结构3.(7分)若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为(D)。
A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,3知识点:第九章解析第九章第一节有序表的查找4.(7分)设有序表中有1000个元素,则用二分查找查找元素X最多需要比较(B)次。
A. 25B. 10C. 7D. 1知识点:第九章解析第九章第一节有序表的查找5.(7分)单链表的结点包含____和_____。
(D)A. 结点域,符号域B. 数据域,符号域C. 结点域,指针域D. 数据域,指针域知识点:第二章解析第二章第三节线性链表6.(7分)设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为(A)。
A. BADCB. BCDAC. CDABD. CBDA知识点:第六章解析第六章第三节遍历二叉树7.(7分)序列278、109、930经过一趟基数排序后结果为(A)。
A. 930、278、109B. 109、930、278C. 109、278、930D. 278、109、930知识点:第十章解析第十章第六节多关键字的排序8.(7分)设某有向图中有n个顶点,则该有向图对应的邻接表中有(B)个表头结点。
A. n-1B. nC. n+1D. 2n-1知识点:第七章解析第七章第二节邻接表9.(7分)设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(C)。
A. O(n)B. O(nlog2n)C. O(1)D. O(n2)知识点:第五章解析第五章第二节综合题目10.(7分)一个栈的入栈序列是A、B、C、D、E,五个元素都入栈后,首次出栈的元素是(B)。
A. AB. EC. BD. D知识点:第三章解析第三章第一节综合题目二、判断。
1.(6分)已知一棵二叉树的先序序列和后序序列,则能够唯一确定出该二叉树的形状。
答案:错误。
解析第六章第三节遍历二叉树2.(6分)归并排序是一种稳定的排序方法。
答案:正确。
解析第十章第五节综合题目3.(6分)邻接表法只能用于有向图存储。
答案:错误。
解析第七章第二节邻接表4.(6分)设初始记录关键字基本有序,则快速排序算法的时间复杂度为O(nlog2n)。
答案:错误。
解析第十章第三节综合题目5.(6分)非空的双向循环链表中任何结点的前驱指针均不为空。
答案:正确。
解析第二章第三节循环链表。