数据结构课程三套作业及答案分析

合集下载

数据结构各章习题和答案解析

数据结构各章习题和答案解析

数据结构习题及解答第1章 概述【例1-1】分析以下程序段的时间复杂度。

for(i=0;i<n;i++)for(j=0;j<m;j++)A[i][j]=0; 解:该程序段的时间复杂度为O(m*n)。

【例1-2】分析以下程序段的时间复杂度。

i=s=0; ①while(s<n){ i++; ② s+=i; ③}解:语句①为赋值语句,其执行次数为1次,所以其时间复杂度为O(1)。

语句②和语句③构成while 循环语句的循环体,它们的执行次数由循环控制条件中s 与n 的值确定。

假定循环重复执行x 次后结束, 则语句②和语句③各重复执行了x 次。

其时间复杂度按线性累加规则为O(x)。

此时s 与n 满足关系式:s ≥n ,而s=1+2+3+…+x 。

所以有:1+2+3+…+x ≥n ,可以推出: x=n n 241212811+±-=+±-x 与n 之间满足x=f(n ),所以循环体的时间复杂度为O(n ),语句①与循环体由线性累加规则得到该程序段的时间复杂度为O(n )。

【例1-3】分析以下程序段的时间复杂度。

i=1; ① while(i<=n)i=2*i; ②解:其中语句①的执行次数是1,设语句②的执行次数为f(n),则有:n n f ≤)(2。

得:T(n)=O(n2 log)【例1-4】有如下递归函数fact(n),分析其时间复杂度。

fact(int n){ if(n<=1)return(1); ①elsereturn(n*fact(n-1)); ②}解:设fact(n)的运行时间函数是T(n)。

该函数中语句①的运行时间是O(1),语句②的运行时间是T(n-1)+ O(1),其中O(1)为常量运行时间。

由此可得fact(n)的时间复杂度为 O(n)。

习题1一、单项选择题1. 数据结构是指(1. A )。

A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2. 数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(2. C )。

数据结构》作业题答案

数据结构》作业题答案

参考答案第一章、绪论一、选择题1 B;2 A; 3 B;4 C ;5 C; 6 B;7 C;8 C;9 D;10 B。

二、填空题1、存储;2、无,1,无,1;3、前驱,1,后继,任意多个;4、一对一,一对多,多对多;5、时间复杂度,空间复杂度;6、集合,线性结构,树形结构,图形结构;7、顺序结构,链式结构,索引结构,散列结构;8、顺序。

三、问答题与算法题1、3 ;2、T1 ( n ) = 5n 2 -O ( n ) ; T2 ( n ) = 3 n 2 + O ( n ) ; T3 ( n ) = 8 n 2 + O(log n) ;T4 ( n ) = 1.5 n 2 + O ( n ) 。

T4 ( n ) 较优,T3 ( n )较劣。

3、见课本。

第二章线性表一、选择题1C;2A;3D;4B;5D;6B;7C;8B;9A;10C;11D;12D;13C;14C.二、填空题1、O ( 1 ), O ( n );2、单链表,双链表;3、地址,指针;4、4,2;5、便于访问尾结点和头结点;6、前驱;7、L->next== L且L->prior== L;8、顺序。

三、问答题与算法题1、头指针:结点或头结点的指针变量。

其作用是存放第一个结点或头结点的地址,从头指针出发可以找到链表中所有结点的信息。

头结点:是附加在链表的第一个结点之前的一个特殊结点,其数据域一般不存放信息。

其作用是为了简化运算,将空表与非空表统一起来,将第一个结点与其他结点的处理统一起来。

首结点:是链表的第一个结点。

2、(1)基于空间的考虑。

当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。

(2)基于时间的考虑。

若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之,若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。

数据结构习题和答案及解析

数据结构习题和答案及解析

数据结构习题和答案及解析数据结构是计算机科学中非常重要的一个领域,它关注数据的存储、组织和管理方式。

在学习数据结构的过程中,遇到习题是必不可少的,通过解答这些习题可以更好地理解和掌握数据结构的概念和应用。

以下是一些常见的数据结构习题及其答案和解析,希望可以帮助读者更好地学习和理解数据结构。

习题一:栈的应用题目描述:设计一个栈,使其具有获取栈中最小元素的操作。

解答及解析:可以通过两个栈来实现,一个栈用于存储数据,另一个栈用于存储当前最小元素。

在入栈时,如果新的元素比当前最小元素小,则将新元素同时入栈到数据栈和最小栈;在出栈时,如果当前出栈元素与最小栈的栈顶元素相同,则同时出栈。

这样,最小栈的栈顶元素始终为当前栈的最小元素。

习题二:队列的应用题目描述:设计一个队列,使其具有获取队列中最大元素的操作。

解答及解析:可以通过两个队列来实现,一个队列用于存储数据,另一个队列用于存储当前最大元素。

在入队时,如果新的元素比当前最大元素大,则将新元素同时入队到数据队列和最大队列;在出队时,如果当前出队元素与最大队列的队首元素相同,则同时出队。

这样,最大队列的队首元素始终为当前队列的最大元素。

习题三:链表的操作题目描述:给定一个链表,删除链表中倒数第n个节点,并返回链表的头节点。

解答及解析:使用双指针法来解决该问题。

首先让一个指针从链表的头节点向前移动n+1步,然后再让另一个指针从链表的头节点开始移动。

这样两个指针之间的间隔为n,当第一个指针到达链表末尾时,第二个指针指向的节点就是倒数第n个节点的前一个节点。

接着,将第二个指针指向的节点的next指针指向下下个节点,完成删除操作。

习题四:树的遍历题目描述:给定一个二叉树,按照中序遍历的顺序返回其节点值的集合。

解答及解析:采用递归的方式进行中序遍历,先遍历左子树,然后访问根节点,最后遍历右子树。

对于任意一个节点,递归遍历其左子树,将节点值添加到集合中。

然后访问该节点,并将节点值添加到集合中。

数据结构与算法设计课后习题及答案详解

数据结构与算法设计课后习题及答案详解

数据结构与算法设计课后习题及答案详解1. 习题一:数组求和题目描述:给定一个整数数组,编写一个函数来计算它的所有元素之和。

解题思路:遍历数组,将每个元素累加到一个变量中,最后返回累加和。

代码实现:```pythondef sum_array(arr):result = 0for num in arr:result += numreturn result```2. 习题二:链表反转题目描述:给定一个单链表,反转它的节点顺序。

解题思路:采用三指针法,依次将当前节点的下一个节点指向上一个节点,然后更新三个指针的位置,直到链表反转完毕。

代码实现:```pythonclass ListNode:def __init__(self, val=0, next=None):self.val = valself.next = nextdef reverse_list(head):prev = Nonecurr = headwhile curr:next_node = curr.nextcurr.next = prevprev = currcurr = next_nodereturn prev```3. 习题三:二叉树的层序遍历题目描述:给定一个二叉树,返回其节点值的层序遍历结果。

解题思路:采用队列来实现层序遍历,先将根节点入队,然后循环出队并访问出队节点的值,同时将出队节点的左右子节点入队。

代码实现:```pythonclass TreeNode:def __init__(self, val=0, left=None, right=None): self.val = valself.left = leftself.right = rightdef level_order(root):if not root:return []result = []queue = [root]while queue:level = []for _ in range(len(queue)):node = queue.pop(0)level.append(node.val)if node.left:queue.append(node.left)queue.append(node.right)result.append(level)return result```4. 习题四:堆排序题目描述:给定一个无序数组,使用堆排序算法对其进行排序。

数据结构习题(包含全部答案解析)

数据结构习题(包含全部答案解析)

数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。

A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。

A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。

A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。

A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。

A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。

A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。

A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。

(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。

数据结构(C语言版)习题参考答案

数据结构(C语言版)习题参考答案

数据结构(C语言版)习题参考答案数据结构(C语言版)习题参考答案1. 数据结构简介数据结构是计算机科学中重要的概念之一,它关注如何组织和存储数据,以便有效地进行访问和操作。

C语言是一种广泛应用于数据结构实现的编程语言。

本文将提供一些常见数据结构习题的参考答案,帮助读者理解和掌握数据结构的基本概念与实现。

2. 数组数组是一种线性结构,存储具有相同数据类型的元素。

以下是一些数组习题的参考答案:2.1 统计数组中某个元素出现的次数```int countOccurrences(int arr[], int n, int x) {int count = 0;for (int i = 0; i < n; i++) {if (arr[i] == x) {count++;}}return count;}```2.2 查找数组中的最大值和最小值```void findMinMax(int arr[], int n, int* min, int* max) { *min = arr[0];*max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] < *min) {*min = arr[i];}if (arr[i] > *max) {*max = arr[i];}}}```3. 链表链表是一种动态数据结构,每个节点包含数据和指向下一个节点的指针。

以下是一些链表习题的参考答案:3.1 反转链表```Node* reverseLinkedList(Node* head) {Node* prev = NULL;Node* curr = head;while (curr != NULL) {Node* next = curr->next;curr->next = prev;prev = curr;curr = next;}return prev;}```3.2 合并两个有序链表```Node* mergeLists(Node* list1, Node* list2) {if (list1 == NULL) {return list2;}if (list2 == NULL) {return list1;}if (list1->data < list2->data) {list1->next = mergeLists(list1->next, list2);return list1;} else {list2->next = mergeLists(list1, list2->next);return list2;}}```4. 栈和队列栈和队列是两种重要的线性数据结构,栈支持后进先出(LIFO),队列支持先进先出(FIFO)。

数据结构习题和答案及解析

数据结构习题和答案及解析

⑷下面〔〕不是算法所必须具备的特性。

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. 为整数定义一个抽象数据类型,包含整数的常见运算,每个运算对应一个根本操作,每个根本操作的接口需定义前置条件、输入、功能、输出和后置条件。

数据结构作业及答案汇总

数据结构作业及答案汇总

数据结构作业及答案汇总数据结构是计算机科学中的一个重要概念,它涉及到组织和管理数据的方式和方法。

在学习数据结构的过程中,作业和答案总结是帮助我们巩固知识和理解的重要步骤。

本文将对数据结构作业及答案进行汇总,以便帮助读者更好地学习和掌握数据结构知识。

作业一:栈和队列1. 描述栈和队列的基本特点,并给出它们的应用场景。

栈是一种容器,它具有后进先出(LIFO)的特点。

常见的应用场景有程序调用栈、浏览器的前进后退功能等。

队列是一种容器,它具有先进先出(FIFO)的特点。

常见的应用场景有任务调度、消息队列等。

2. 设计一个栈,使其具有查找最小元素的功能。

给出实现代码和分析时间复杂度。

3. 设计一个队列,使其具有查找最大元素的功能。

给出实现代码和分析时间复杂度。

作业二:链表1. 描述链表的基本特点,并给出它的应用场景。

链表是一种数据结构,它由一系列节点组成。

每个节点包含数据和指向下一节点的指针。

常见的应用场景有实现链表、存储大量数据等。

2. 设计一个单向链表,使其具有反转链表的功能。

给出实现代码和分析时间复杂度。

3. 设计一个双向链表,使其具有插入和删除节点的功能。

给出实现代码和分析时间复杂度。

作业三:树1. 描述树的基本特点,并给出它的应用场景。

树是一种非线性数据结构,它由节点和边组成。

常见的应用场景有文件系统、数据库索引等。

2. 设计一个二叉树,实现遍历功能(前序、中序、后序)。

给出实现代码和分析时间复杂度。

3. 设计一个平衡二叉树,使其具有快速查找节点的功能。

给出实现代码和分析时间复杂度。

作业四:图1. 描述图的基本特点,并给出它的应用场景。

图是一种由顶点和边组成的数据结构,边表示顶点之间的关系。

常见的应用场景有社交网络、地图导航等。

2. 设计一个有向图,实现深度优先搜索(DFS)算法。

给出实现代码和分析时间复杂度。

3. 设计一个无向图,实现广度优先搜索(BFS)算法。

给出实现代码和分析时间复杂度。

答案汇总:在本文中,我们对栈、队列、链表、树和图这几个常见的数据结构进行了作业设计和答案汇总。

数据结构第三次作业题及答案.doc

数据结构第三次作业题及答案.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 树与二叉树参考答案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):按树状打印二叉树。

数据结构习题(包含全部答案解析)

数据结构习题(包含全部答案解析)

数据结构习题(包含全部答案解析)数据结构习题(包含全部答案解析)1. 塔的问题题目描述:有三个塔,分别是A、B和C,A塔上有n个盘子,按照从小到大的顺序叠放。

现在要将这些盘子从A塔移动到C塔,并且每次只能移动一个盘子,并且在移动过程中保持大盘子在下,小盘子在上的顺序。

求移动的步骤。

解析:这道题可以使用递归来解决。

将问题分解为两个子问题:将n-1个盘子从A塔移动到B塔,然后将最后一个盘子从A塔移动到C 塔,最后再将n-1个盘子从B塔移动到C塔。

步骤如下:1)如果n等于1,直接将盘子从A塔移动到C塔;2)否则,执行以下步骤:a) 将n-1个盘子从A塔移动到B塔,使用C塔作为中转塔;b) 将最后一个盘子从A塔移动到C塔;c) 将n-1个盘子从B塔移动到C塔,使用A塔作为中转塔。

2. 链表问题题目描述:给定一个链表,判断链表是否存在环。

解析:这道题可以使用快慢指针的思想来解决。

定义两个指针fast和slow,初始时都指向链表的头节点。

fast指针每次向后移动两个节点,slow指针每次向后移动一个节点。

如果链表中存在环,则fast指针一定会在某个时刻追上slow指针。

步骤如下:1)定义两个指针fast和slow,初始时都指向链表的头节点;2)使用一个while循环,判断条件是fast指针不为空且其下一个节点也不为空;3)在循环中,fast指针每次向后移动两个节点,slow指针每次向后移动一个节点;4)如果fast指针和slow指针相遇,则链表存在环,返回true;5)如果fast指针和slow指针永远不相遇,则链表不存在环,返回false。

3. 栈的应用题目描述:给定一个只包含'('和')'的字符串,判断该字符串是否是有效的括号序列。

解析:这道题可以使用栈来解决。

遍历字符串的每一个字符,如果是左括号,将其压入栈中;如果是右括号,判断栈顶的字符是否与该右括号匹配,若匹配则出栈,若不匹配则该字符串不是有效的括号序列。

数据结构作业及答案

数据结构作业及答案

第一章绪论一、选择题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.每种数据结构都具备三个基本运算:插入、删除和查找,这种说法。

数据结构作业题及参考答案【精选文档】

数据结构作业题及参考答案【精选文档】

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

A、O(n)B、O(n/2)C、O (1)D、O(n2)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;A、O(1)B、O (n)C、O(2n)D、O(n2)7.栈是一种操作受限的线性结构,其操作的主要特征是()。

A、先进先出B、后进先出C、进优于出D、出优于进8.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear.若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为()。

A、(rear-front—1)%nB、(rear—front)%nC、(front-rear+1)%nD、(rear—front+n)%n9.高度为5的完全二叉树中含有的结点数至少为()。

A、16B、17C、31D、3210.如图所示有向图的一个拓扑序列是( )A、ABCDEFB、FCBEADC、FEDCBAD、DAEBCF二、填空题(每空1分,共20分)1.n (n﹥0)个顶点的无向图最多有条边,最少有条边。

2.在一棵A VL树中,每个结点的左子树高度与右子树高度之差的绝对值不超过.3.已知8个数据元素为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树,则该树的深度为。

数据结构与算法习题含参考答案

数据结构与算法习题含参考答案

数据结构与算法习题含参考答案一、单选题(共100题,每题1分,共100分)1、要为 Word 2010 格式的论文添加索引,如果索引项已经以表格形式保存在另一个 Word文档中,最快捷的操作方法是:A、在 Word 格式论文中,逐一标记索引项,然后插入索引B、直接将以表格形式保存在另一个 Word 文档中的索引项复制到 Word 格式论文中C、在 Word 格式论文中,使用自动插入索引功能,从另外保存 Word 索引项的文件中插D、在 Word 格式论文中,使用自动标记功能批量标记索引项,然后插入索引正确答案:D2、下面不属于计算机软件构成要素的是A、文档B、程序C、数据D、开发方法正确答案:D3、JAVA 属于:A、操作系统B、办公软件C、数据库系统D、计算机语言正确答案:D4、在 PowerPoint 演示文稿中,不可以使用的对象是:A、图片B、超链接C、视频D、书签第 6 组正确答案:D5、下列叙述中正确的是A、软件过程是软件开发过程和软件维护过程B、软件过程是软件开发过程C、软件过程是把输入转化为输出的一组彼此相关的资源和活动D、软件过程是软件维护过程正确答案:C6、在 Word 中,不能作为文本转换为表格的分隔符的是:A、@B、制表符C、段落标记D、##正确答案:D7、某企业为了建设一个可供客户在互联网上浏览的网站,需要申请一个:A、密码B、门牌号C、域名D、邮编正确答案:C8、面向对象方法中,将数据和操作置于对象的统一体中的实现方式是A、隐藏第 42 组B、抽象C、结合D、封装正确答案:D9、下面属于整数类 I 实例的是A、-919B、0.919C、919E+3D、919D-2正确答案:A10、定义课程的关系模式如下:Course (C#, Cn, Cr,prC1#, prC2#)(其属性分别为课程号、课程名、学分、先修课程号 1和先修课程号 2),并且不同课程可以同名,则该关系最高是A、BCNFB、2NFC、1NFD、3NF正确答案:A11、循环队列的存储空间为 Q(1:100),初始状态为 front=rear=100。

中南大学《数据结构》课程作业(在线作业)三及参考答案

中南大学《数据结构》课程作业(在线作业)三及参考答案
(C) 40, 38,46, 56, 79, 84
(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.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。

3.简述逻辑结构的四种基本关系并画出它们的关系图。

4.存储结构由哪两种基本的存储方法实现?5.选择题(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.栈6.试分析下面各程序段的时间复杂度。

(1)x=90; y=100;while(y>0)if(x>100){x=x-10;y--;}else x++;(2)for (i=0; i<n; i++)for (j=0; j<m; j++)a[i][j]=0;(3)s=0;for i=0; i<n; i++)for(j=0; j<n; j++)s+=B[i][j];sum=s;(4)i=1;while(i<=n)i=i*3;(5)x=0;for(i=1; i<n; i++)for (j=1; j<=n-i; j++)x++;(6)x=n; //n>1y=0;while(x≥(y+1)* (y+1))y++;(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题(1)一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。

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

数据结构课程作业_A一、单选题。

1.(7分)对完全二叉树叙述正确的是( C )。

A.完全二叉树就是满二叉树B.完全二叉树和满二叉树编号不对应C.完全二叉树同一层上左子树未满不会有右子树D. 以上都不正确知识点:第六章解析第六章第二节二叉树的性质C )。

2.(7分)堆的形状是一棵(A. 二叉排序树B.满二叉树C.完全二叉树D.一般的二叉树知识点:第十章解析第十章第四节堆排序)。

3.(7分)设一棵完全二叉树中有65个结点,则该完全二叉树的深度为(BA. 8B.7C.6D. 5知识点:第六章解析第六章第六节二叉树的性质D )4.(7分)以下数据结构中哪一个是非线性结构?(A. 队列B.栈C.线性表D.二叉树知识点:第一章解析第一章第二节综合题目A )。

5.(7分)线性表的顺序存储结构是一种?的存储结构(A. 随机存取B.顺序存取C.索引存取D.散列存取知识点:第二章解析第二章第二节综合题目C )。

6.(7分)带头节点的单链表L为空的判定条件是( A. L==nullB.L->data==nullC.L->next==nullD.L->next==data知识点:第二章解析第二章第三节线性链表7.(7分)设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键C )。

字45为基准而得到一趟快速排序的结果是(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),则以20A )。

为基准记录的一趟快速排序结束后的结果为( 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)知识点:第七章解析第七章第一节综合题目A )。

2.(7分)链式队列Q为空的判定条件(A. Q.front==Q.rearB.Q.front==QC.Q ==Q.rearD.没有正确答案知识点:第三章解析第三章第四节队列的链式表示和实现A )。

3.(7分)设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为( A. O(n+e)B.O(n2)C.O(ne)D.O(n3)知识点:第七章解析第七章第二节邻接表D )。

4.(7分)图的广度优先遍历算法类似于二叉树的(A. 先序遍历B.中序遍历C.后序遍历D.层次遍历知识点:第七章解析第七章第三节广度优先搜索C )。

5.(7分)图的邻接矩阵表示法适用于表示( A. 有向图B.无向图C.稠密图D.稀疏图知识点:第七章解析第七章第二节数组表示法6.(7分)设输入序列是1、2、3、……、n,经过栈的作用后输出序列的第一个元素是n,则C )。

输出序列中第i个输出元素是( A. n-IB.n-1-IC.n+1-ID. 不能确定知识点:第三章解析第三章第一节栈的表示和实现B)的线性表。

7.(7分)顺序查找适用于存储结构为(A. 散列B.顺序或者链式C.压缩D.索引知识点:第九章解析第九章第一节顺序表的查找D )。

8.(7分)线性表若采用链式存储结构时,要求内存中的可用存储单元的地址?( A. 必须连续B.部分连续C.一定不连续D.可连续可不连续知识点:第二章解析第二章第三节综合题目B)条边。

9.(7分)设无向图G中有n个顶点,则该无向图的最小生成树上有(A. nB.n-1C.2nD.2n-1知识点:第七章解析第七章第四节最小生成树10.(7分)设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指D )。

针,则执行出队操作后其头指针front值为( 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开始对完全二叉树进行顺序编号,则编号为B)。

i结点的左孩子结点的编号为(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知识点:第九章解析第九章第一节有序表的查找D )5.(7分)单链表的结点包含____和_____。

(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知识点:第十章解析第十章第六节多关键字的排序B)个表头结点。

8.(7分)设某有向图中有n个顶点,则该有向图对应的邻接表中有(A. n-1B.nC.n+1D.2n-1知识点:第七章解析第七章第二节邻接表C 9.(7分)设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为()。

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分)非空的双向循环链表中任何结点的前驱指针均不为空。

答案:正确。

解析第二章第三节循环链表。

相关文档
最新文档