20101月数据结构答案、解析
02142数据结构导论2010年1 月份真题及答案
2010年1月高等教育自学考试全国统一命题考试数据结构导论试题课程代码:02142一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下述文件中适合于磁带存储的是()A.顺序文件B.索引文件C.散列文件D.多关键字文件2.某二叉树的后根遍历序列为dabec,中根遍历序列为debac,则先根遍历序列为()A.acbedB.becabC.deabcD.cedba3.含有n个结点的二叉树用二叉链表表示时,空指针域个数为( )A.n-1B.nC.n+1D.n+24.在一个图中,所有顶点的度数之和与图的边数的比是( )A.1∶2B.1∶1C.2∶1D.4∶15.长度为n的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为( )A.O(1)B.O(1og2n)C.O(n)D.O(n2)6.下述几种排序方法中,要求内存量最大的是( )A.插入排序B.快速排序C.归并排序D.选择排序7.对n个不同值进行冒泡排序,在元素无序的情况下比较的次数为( )A.n-1B.nC.n+1D.n(n-1)/28.对线性表进行二分查找时,要求线性表必须( )A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且结点按关键字有序排列D.以链接方式存储,且结点按关键字有序排列9.在表长为n的顺序表上做删除运算,其平均时间复杂度为( )A.O(1)B.O(n)C.O(nlog2n)D.O(n2)10.当利用大小为n的数组顺序存储一个队列时,该队列的最大容量为( )A.n-2B.n-1C.nD.n+111.有关插入排序的叙述,错误的...是( )A.插入排序在最坏情况下需要O(n2)时间B.插入排序在最佳情况可在O(n)时间内完成C.插入排序平均需要O(nlog2n)时间D.插入排序的空间复杂度为O(1)12.有关树的叙述正确的是( )A.每一个内部结点至少有一个兄弟B.每一个叶结点均有父结点C.有的树没有子树D.每个树至少有一个根结点与一个叶结点。
《数据结构基础教程》习题及解答
《数据结构基础教程》习题及解答数据结构基础教程习题及解答第一章:数据结构简介1.1 什么是数据结构?数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,包括数据的逻辑结构、物理结构和数据元素之间的运算。
1.2 数据的逻辑结构有哪些?数据的逻辑结构包括线性结构、树形结构和图状结构。
1.3 数据的物理结构有哪些?数据的物理结构包括顺序存储结构和链式存储结构。
1.4 数据结构的主要目标是什么?数据结构的主要目标是提高数据的存储效率和运算效率。
第二章:线性表2.1 线性表的定义线性表是由n(≥0)个数据元素组成的有限序列。
线性表是一种常见的数据结构,常用的实现方式包括数组和链表。
2.2 线性表的顺序存储结构线性表的顺序存储结构是将线性表中的元素存储在连续的存储空间中,通过元素在内存中的物理位置来表示元素之间的关系。
2.3 线性表的链式存储结构线性表的链式存储结构是通过指针将线性表中的元素连接在一起,每个元素包括数据域和指针域。
2.4 线性表的基本操作包括初始化线性表、插入元素、删除元素、查找元素等。
第三章:栈与队列3.1 栈的定义与特性栈是一种具有后进先出特性的线性表,只允许在一端进行插入和删除操作,被称为栈顶。
3.2 栈的顺序存储结构和链式存储结构栈的顺序存储结构和链式存储结构与线性表的存储结构类似,不同之处在于栈只允许在一端进行插入和删除操作。
3.3 栈的应用栈在表达式求值、函数调用和递归等场景中有广泛应用。
3.4 队列的定义与特性队列是一种具有先进先出特性的线性表,允许在一端插入元素,在另一端删除元素。
3.5 队列的顺序存储结构和链式存储结构队列的顺序存储结构和链式存储结构与线性表的存储结构类似,不同之处在于队列允许在一端插入元素,在另一端删除元素。
3.6 队列的应用队列在模拟排队系统、操作系统进程调度等场景中有广泛应用。
第四章:树与二叉树4.1 树的基本概念树是由n(≥0)个节点组成的有限集合,其中有一个称为根节点,除了根节点之外的其余节点被分为m(m≥0)个互不相交的集合,每个集合本身又是一棵树。
(完整版)数据结构课后习题答案(可编辑修改word版)
第1 章绪论1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。
答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。
如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。
数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。
在有些情况下,数据元素也称为元素、结点、记录等。
数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。
数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。
例如,学生基本信息表中的学号、姓名、性别等都是数据项。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
例如:整数数据对象是集合N={0,±1,±2,… },字母字符数据对象是集合C={‘A’,‘B’,… ,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。
逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
存储结构:数据对象在计算机中的存储表示,也称为物理结构。
抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。
具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。
2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。
答案:例如有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。
每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。
数据结构(含答案)
数据结构(含答案)数据结构数据结构是计算机科学的基础知识之一,它在计算机领域中有着重要的地位。
本文将介绍数据结构的概念、常见的数据结构类型以及其应用。
同时,还会对一些常见的数据结构问题进行解答。
一、概念简介在计算机科学中,数据结构是指存储和组织数据的方式。
它关注数据元素之间的关系,以及如何对数据进行插入、删除和查询等操作。
数据结构可以分为线性结构和非线性结构两大类。
1.1 线性结构线性结构是最简单的一种数据结构,它的特点是数据元素之间存在一对一的关系。
常见的线性结构包括数组、链表、栈和队列。
- 数组是一种连续存储数据元素的结构,可以通过下标快速访问元素。
但是数组的大小固定,插入和删除操作比较耗时。
- 链表是一种通过指针连接数据元素的结构,可以动态地进行插入和删除操作。
但是链表的随机访问效率较低。
- 栈是一种先进后出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。
常见的应用场景包括函数调用、表达式求值等。
- 队列是一种先进先出(FIFO)的数据结构,插入操作在队尾进行,删除操作在队头进行。
常见的应用场景包括任务调度、消息传递等。
1.2 非线性结构非线性结构中,数据元素之间的关系不是一对一的,包括树和图等结构。
- 树是一种层次结构,由节点和边组成。
树的常见应用包括文件系统、数据库索引等。
- 图是由节点和边组成的网络结构,节点之间的关系可以是任意的。
图的应用非常广泛,包括社交网络、路由算法等。
二、数据结构问题解答2.1 如何判断一个链表中是否存在环?使用快慢指针可以判断一个链表中是否存在环。
假设有两个指针,一个每次移动一步,另一个每次移动两步。
如果链表中存在环,那么快指针迟早会追上慢指针。
如果快指针到达链表尾部时都没有追上慢指针,那么链表中不存在环。
2.2 如何判断一个二叉树是否是平衡二叉树?平衡二叉树是一种左子树和右子树高度差不超过1的二叉树。
判断一个二叉树是否是平衡二叉树可以使用递归的方法。
数据结构习题(包含全部答案解析)
数据结构习题集(自编)第一章绪论一、选择题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、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。
数据结构考试试题库含答案解析
数据结构考试试题库含答案解析数据结构习题集含答案⽬录⽬录 (1)选择题 (2)第⼀章绪论 (2)第⼆章线性表 (4)第三章栈和队列 (6)第四章串 (7)第五章数组和⼴义表 (8)第六章树和⼆叉树 (8)第七章图 (11)第⼋章查找 (13)第九章排序 (14)简答题 (19)第⼀章绪论 (19)第⼆章线性表 (24)第三章栈和队列 (26)第四章串 (28)第五章数组和⼴义表 (29)第六章树和⼆叉树 (31)第七章图 (36)第⼋章查找 (38)第九章排序 (39)编程题 (41)第⼀章绪论 (41)第⼆章线性表 (41)第三章栈和队列 (52)第四章串 (52)第五章数组和⼴义表 (52)第六章树和⼆叉树 (52)第七章图 (52)第⼋章查找 (52)第⼀章绪论1.数据结构这门学科是针对什么问题⽽产⽣的?(A )A、针对⾮数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与⾮数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下⾯选项最准确的是(D )A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学⽣成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下⾯关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学⽣成绩表是数据元素,90分是数据项B、某班级的学⽣成绩表是数据对象,90分是数据元素C、某班级的学⽣成绩表是数据对象,90分是数据项D、某班级的学⽣成绩表是数据元素,90分是数据元素4.*数据结构是指(A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表⽰时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的⽬的是(C )A、找出数据的合理性B、研究算法中的输⼊和输出关系C、分析算法效率以求改进D、分析算法的易懂性和⽂档型性7.算法分析的主要⽅法(A )。
《数据结构》各章课后作业答案
《数据结构》各章课后作业答案 第一章 绪论课后作业答案1. 简述线性结构与非线性结构的不同点。
答:线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是多对多的。
2.分析下面各程序段的时间复杂度(每小题5分,共20分)解:1.第一个for 循环执行n+1次,第二个for 循环执行n(m+1)次,A[i][j]=0;语句执行n*m 次,此程序段总的执行次数为n+1+n*(m+1)+n*m=2nm+2n+1次。
故时间复杂度为O(n*m)。
2.算法的时间复杂度是由嵌套最深层语句的执行次数决定的,本程序段嵌套最深层语句为:s+=B[i][j];它的执行次数为n 2,所以本程序段的时间复杂度是O(n 2)。
3. 该算法的基本操作是语句x++, 其语句频度为:1111n n i i j --==∑∑=10()n i n i -=-∑=(1)2n n - 所以本程序段的时间复杂度是O(n 2)。
4.设语句执行m 次,则有3m≤n ⇒m ≤log 3n所以本程序段的时间复杂度为O(log 3n)。
第二章 线性表课后作业答案1. 填空题。
(1)在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。
(2)线性表中结点的集合是 有限 的,结点间的关系是 一对一的。
(2)s=0;for (i=0; i<n; i++)for(j=0; j<n; j++) s+=B[i][j]; sum=s; 答:O (n 2)(1) for (i=0; i<n; i++) for (j=0; j<m; j++) A[i][j]=0;(3) x=0;for(i=1; i<n; i++)for (j=1; j<=n-i; j++)x++;(4)i=1;while(i<=n)i=i*3;(3)向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动 n-i+1 个元素。
数据结构试题与答案及解析
数据结构试题与答案及解析导语:本文为广大数据结构学习者提供一些经典试题的答案及详细解析,帮助读者更好地理解与掌握数据结构的知识点。
以下是一些常见的试题以及对应的答案与解析。
1. 试题:请简述什么是数据结构?答案及解析:数据结构是计算机科学中研究和应用各种数据元素之间关系的一门学科,涉及到数据的组织、存储、管理和操作等方面。
数据结构为算法的设计与实现提供了基础,并在解决实际问题时起到了重要的作用。
因此,数据结构的学习对于编程能力的提升非常重要。
2. 试题:请解释什么是哈希表(Hash Table)?并简述其原理。
答案及解析:哈希表是一种常用的数据结构,其基本原理是通过将键(Key)通过哈希函数(Hash Function)映射到数组的某个位置上,实现将键与值(Value)建立一一对应关系的数据结构。
哈希表的原理比较简单,首先我们需要一个合适的哈希函数,该函数能够将键映射到数组的某个位置上。
当我们需要插入或查找键值对时,首先根据键经过哈希函数得到其对应的数组下标,然后将值存储在该位置上。
当发生冲突时(即多个键映射到同一个位置),可使用链表或其他解决冲突的方法来处理。
3. 试题:请说明线性表的定义及其特点。
答案及解析:线性表是数据结构中最基本且最常见的一种形式,其由n个数据元素构成的有序序列,特点如下:1) 元素之间呈线性关系,即每个元素只有一个直接前驱和一个直接后继。
2) 线性表的长度是固定的,且有序排列。
3) 线性表中任意两个元素之间的关系是确定的,不会发生变化。
4. 试题:请解释树的概念及其基本特点。
答案及解析:树是一种非常重要的数据结构,由n个节点组成,其中有且仅有一个特定的节点称作根节点,其余节点分成m个互不相交的子集,每个子集自身又是一个树。
树的基本特点如下:1) 树中的节点具有层次关系,从根节点开始,每个节点可以有若干子节点。
2) 每个节点有且仅有一个父节点,除了根节点。
3) 树中的任意两个节点之间都存在唯一的路径。
数据结构真题及答案(2010)
杭州电子科技大学2010《数据结构》真题及解析一、是非题(每小题2分,共20分)1.线性表的顺序存储结构优于链式存储结构。
2.栈和队列也是线性表。
如果需要,可对它们中的任一元素进行操作。
3.非空广义表的表头和表尾都有可能是原子或广义表。
4.在二叉树的先序遍历序列中,任意-个结点均处在其孩子结点的前面。
5.通常,在二叉树的第i层上有2^i-1个结点。
6.二叉树按某种次序线索化后,任一结点均有指向其前驱和后继的线索指针。
6.赫夫曼树中的结点个数一定是奇数。
8.用邻接矩阵(数组表示法)存储一个图时,所需的存储空间大小与图的边数无关。
9.对于一棵m阶的B-树而言.树中每个结点至多有m个关键字,除根之外的所有非终端结点至少有┌m/2┐个关键字。
10.对于任何待排序序列来说,快速排序均快于冒泡排序。
二、选择题(每小题2分,共20分)1.递归过程可借助于_____转化为非递归过程。
A:线性表 B:队列 C:栈 D:数组2.循环队列用数组A[0..m-1]存放其元素值,设头尾游标分别为front(队头元素的位置)和rear(队尾元素的位置),则当前队列中的元素个数是_______。
A: rear-front B: rear-front+1C: (rear-front+m)%m D: (rear-front+1+m)%m3.对广义表A=((a, (6)),(c,()),d)执行操作gettail(gethead(gettail (A)))的结果是:________。
A:() B:(()) C:d D:(d)4.对二叉排序树______可得到有序序列。
A:按层遍历 B:前序遍历C:中序遍历 D:后序遍历5.在有n个结点的二叉树的二叉链表表示中,空指针数为________。
A:不定 B: n+1 C:n D:n-16.图示的三棵二叉树中_____为最优二叉树。
A: B: C:7.设无向图G=(V,E)和G=(V′,E′),若G′是G的生成树,则下面不正确的说法是_________。
2010年1月自考数据结构试题和答案
2010年1月高等教育考试数据结构试题和答案课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.若一个算法的时间复杂度用T(n)表示,其中n的含义是(A)A.问题规模B.语句条数C.循环层数D.函数数量2.具有线性结构的数据结构是(C)A.树B.图C.栈和队列D.广义表线性结构有:顺序表、栈和队列、串3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为(C)A.O(1) B.O(m)C.O(n)D.O(m+n)4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是(D)A.2个B.3个C.4个D.6个P28中void DInsertBefore(DListNode *p,DataType x)//在带头结点的双链表中,将值为x的新结点插入结点*p之前,设p≠NULL{DListNode *s=malloc(sizeof(ListNode)); ①s->data=x; ②s->prior=p->prior; ③s->next=p; ④p->prior->next=s; ⑤p->prior=s; ⑥}5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为(D)A.3 B.37C.50 D.97辅导书P22中对于循环向量中的循环队列,写出通过队头队尾指针表示的队列长度公式。
(front指向实际队头,rear指向实际队尾的下一元素位置。
)当rear≥front时,队列长度L=rear-front;当rear<front时,L=m+(rear-front)。
这两种情况可统一为L=(m+(rear-front))%m,这里m为向量的大小。
本题中m=606.若栈采用链式存储结构,则下列说法中正确的是(B)A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空P36中因为链栈中的结点是动态分配的,可以不考虑上溢,所以无需定义stackFull运算。
2010年内蒙古自治区数据结构试题及答案必过技巧
5、当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形 B.引用型
C.指针型 D.常值引用型?
C.O(1Ogzn) D.O(n2)
25、与单链表相比,双链表的优点之一是 D 。
A.插入、删除操作更简单
B.可以进行随机访问
C.可以省略表头指针或表尾指针
D.顺序访问相邻结点更灵活
26、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.对应顶点v的度
B.对应顶点v的出度
C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
33、长度为n的顺序表,删除位置i上的元素(0≤i≤n一1),需要移动的元素个数为
A.n—i B.n—i—l C.i D.i+1
34、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。
30、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.对应顶点v的度
B.对应顶点v的出度
C.对应顶点v的入度
D.依附于对应顶点v的边数
31、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
6、链表不具备的特点是 A 。
A.可随机访问任一结点 B.插入删除不需要移动元素
C.不必事先估计存储空间 D.所需空间与其长度成正比
7、与单链表相比,双链表的优点之一是 D 。
A.插入、删除操作更简单
数据结构10年考研试题及答案(整理)
数据结构考试重点及部分答案自己做的答案不是很正确如果有问题请联系后面的大题不知道原题,所以不知道怎么做见谅!!!题型和分值选择题:15*2=30填空题:10*2=20解答题:5*4=20算法阅读题:5*4=20算法设计题:101 栈的进栈、出栈函数顺序,求一个表达式的顺序eg:进栈顺序是123 计算POP(S)+2 POP(S) =3+2*2=72 给定二叉排序树的数据求平均查找长度Eg:已知长度为9的表{16 ,3 ,7 ,11 ,9 ,26,18,14,15},建立二叉顺序树后进行查找,则等概率的情况下查找成功的平均查找长度为()二叉排序树(Binary Sort Tree)又称二叉查找树。
它或者是一棵空树;或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;根据上述性质,按照给出的表,建立的树如下图:(旁边的数表示查找长度)平均查找长度为:(1+2+2+3+3+4+5+5+6)/9 = 31/93树的概念树是n(n>=0)个结点的有限集4 二重循环的平均时间复杂度的求解(使用嵌套、统计次数)时间复杂度:该算法的运行时间与问题规模的对应关系,时间复杂度用T(n)=O(f(n))来表示Eg:S=0for(i=1;i<=n;i++)for(j=1;j<=m;j++)s=s+1答案为0(n*m)求解算法复杂度时:1、首先确定核心操作。
很显然此算法中,核心的操作是s=s+1;2.这个算法中,存在两重循环。
第一重循环n次,第二重循环m次,总共执行核心操作n*m次。
3.确定此算法的时间复杂度为:O (n*m)若复杂度为 O (n*n),则算法可以是如下的样子:S=0for(i=1;i<=n;i++)for(j=1;j<=n;j++)s=s+15 单链表中R是P的前驱,在P Q之间插入S,则则如何插入(语句表示)在相邻元素R、P之间插入一个值为X的数据元素的基本操作步骤:(1)生成一个数据域值为X的结点S(2)使X结点的指针域指向结点P:S->next=P->next(3)修改R结点的指针域指向结点X:P->next=S6 已知顺序表,求查找X的平均查找长度(n+1)/27栈的插入和删除的位置栈顶8 已知入队序列求出队序列原则:先进先出9 在图中,所有度数和等于边的几倍两倍10 邻接矩阵中行和列分别表示什么意思无向图邻接矩阵的第i行(或第i列)非零元素的个数正好是第i个顶点的度。
最新、2010考研试题及解答(数据结构部分)
5.在一棵度为4的树T中,若有20个度为4的结 点,10个度为3的结点,1个度为2的结点,10 个度为1的结点,则树T的叶结点个数是
A. 41 B. 82 C. 113 D. 122
15
6. 对n(n≥2)个权值均不相同的字符构造哈夫曼 树。下列关于该哈夫曼树的叙述中,错误的是 ()
长 的 时 间 隧 道,袅
9、2010考研试题及解答(数据结构部
1. 为解决计算机主机与打印机之间速度不 匹配问题,通常设置一个打印数据缓冲区, 主机将要输出的数据依次写入该缓冲区, 而打印机则依次从该缓冲区中取出数据。 该缓冲区的逻辑结构应该是( )
A. 栈 B. 队列 C. 树 D. 图
A. 该树一定是一棵完全二叉树 B. 树中一定没有度为1 的结点 C. 树中两个权值最小的结点一定是兄弟结点 D. 树中任一非叶结点的权值一定不小于下一层任
一结点的权值
16
7.若无向图G=(V,E)中含有7个顶点,要 保证图G在任何情况下都是连通的,则需要 的边数最少是( )
A. 6 B. 15 C. 16 D. 21
12
3.下列线索二叉树中(用虚线表示线索), 符合后序线索树定义的是( )
13
4. 在下图所示的平衡二叉树中,插入关键字 48后得到一棵新平衡二叉树。在新平衡二叉 树中,关键字37所在结点的左、右子结点中 保存的关键字分别是( )
A. 13、48 B. 24、48 C. 24、53 D. 24、90
A. d,c,e,b,f,a B. c,b,d,a,e,f C. b,c,a,e,f,d D. a,f,e,d,c,b
11
2.某队列允许在其两端进行入队操作,但 仅允许在一端进行出队操作。若元素a,b, c,d,e依次入此队列后再进行出队操作, 则不可能得到的出队序列是( )
全国1月高等教育自学考试数据结构试题及答案
全国2010年1月高等教育自学考试数据结构试题(课程代码:02331)一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.若一个算法的时间复杂度用T(n)表示,其中n的含义是()A.问题规模B.语句条数C.循环层数D.函数数量2.具有线性结构的数据结构是()A.树B.图C.栈和队列D.广义表3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为()A.O(1) B.O(m)C.O(n) D.O(m+n)4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是()A.2个B.3个.C.4个D.6个5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()A.3 B.37C.50 D.976.若栈采用链式存储结构,则下列说法中正确的是()A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空7.若串str=”Software”,其子串的数目是()A.8 B.9C.36 D.378.设有一个10阶的下三角矩阵A,采用行优先压缩存储方式,a ll为第一个元素,其存储地址为1000,每个元素占一个地址单元,则a85的地址为()A.1012 B.1017C.1032 D.10399.允许结点共享的广义表称为()A.纯表B.线性表C.递归表D.再入表10.下列数据结构中,不属于二叉树的是()A.B树B.AVL树C.二叉排序树D.哈夫曼树11.对下面有向图给出了四种可能的拓扑序列,其中错误..的是()A.1,5,2,6,3,4 B.1,5,6,2,3,4C.5,1,6,3,4,2 D.5,1,2,6,4,312.以v1为起始结点对下图进行深度优先遍历,正确的遍历序列是()A.v1,v2,v3,v4,v5,v6,v7 B.v1,v2,v5,v4,v3,v7,v6C.v1,v2,v3,v4,v7,v5,v6 D.v1,v2,v5,v6,v7,v3,v413.下列排序算法中不稳定的是()A.快速排序B.归并排序C.冒泡排序D.直接插入排序14.一个有序表为(1,3,9,12,32,41,45,62,75,77,82,95,100),当采用折半查找方法查找值32时,查找成功需要的比较次数是()A.2 B.3C.4 D.815.采用ISAM组织文件的方式属于()A.链组织B.顺序组织C.散列组织D.索引组织二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
数据结构--2010河北工大考研题及答案
2010年一、1. 所谓的双向链表,是指在每一个结点中,有两个指针域,其中一个指向该结点的直接后继结点,而另一个则指向。
【答案】其直接前趋结点2. 线性表的顺序存储结构是一种存取的存储结构。
【答案】随机3. 若一棵根树的每个结点最多只有孩子,且孩子又有之分,次序不能颠倒,则称此根树为。
【答案】两个,左、右,二叉树4. 满二叉树是指高度为k,且有个结点的二叉树。
二叉树的每一层上,最多有个结点。
【答案】2k-1 2i-15. 在各种查找方法中,平均查找长度与结点个数n无关的查找方法是。
【答案】哈希表查找法6. 广义表(a,(a,b),d,e,((i,j),k))的长度是,深度是。
【答案】5,3二、1.下面哪一种情况不利于发挥堆排序的优势。
【答案】待排序的数据量小2.如果采用直接选择排序法来排序一个长度为5,且已按相反顺序排序的数组,共需的比较次数是。
【答案】103. 在一棵包含n个结点的顺序二叉树上,最远的两个结点有多远。
【答案】在一棵树包含N个节点完全二叉树上,相距最远的两节点的距离是2logN-34. 折半查找不成功时,指针Low和High的关系是。
【答案】Low>High5.在待排元素序列基本有序的前提下,下面给出的几种排序方法效率最高的是。
【答案】直接插入排序6.设A是一个包含有10个数据元素的有序数组,如果我们利用折半查找法在A中查找任意的数据元素X,假定在确定目标元素是否等于、小于或大于A[i]时仅需比较一次。
则平均的查找成功时间是。
【答案】2.9三、1.能在线性表上进行的操作,就一定能在栈上进行。
【答案】错2. 如果关键字是主关键字的话,则对一个无序的数据元素序列经按主关键字排序后得到的结果是唯一的。
【答案】对3.由于线性链表的存取必须顺序进行,所以在线性链表上删除一个结点时,必须移动其后的所有结点,才能继续保持一个顺序存取的关系。
【答案】错4. 线性表顺序存储结构的存储密度大于线性表的链式存储结构。
1月全国数据结构自考试题及答案解析
1月全国数据结构自考试题及答案解析---在本文中,将给出一月份全国数据结构自考试题的详细分析和答案解析。
数据结构作为计算机科学中的基础课程,对于理解和应用计算机算法和数据处理至关重要。
准备自考的学生可以通过分析这些试题及其答案,加深对数据结构的理解和掌握。
题目一:给定一个数组arr[],长度为n,设计一个算法找到数组中第k小的元素。
其中,1≤k≤n。
自考试题解析:这是经典的选择问题,可以通过快速排序算法的思想进行解答。
首先,选取数组中的一个元素作为枢纽元,将数组按照枢纽元的大小进行划分,分为小于等于枢纽元和大于枢纽元的两部分。
若枢纽元所在的位置正好是第k个元素,则返回该元素;若枢纽元所在的位置小于第k个元素,则在右边的部分递归查找;否则,在左边的部分递归查找。
通过不断缩小问题规模,最终找到第k小的元素。
题目二:给定一个排序后的链表,将其转化为平衡二叉搜索树(BST)。
自考试题解析:这是一个典型的二叉树构建问题。
通过将链表中的元素转化为数组,可以使用二分查找的思想构造平衡二叉搜索树。
首先找到数组中的中间元素作为根节点,然后递归地构建左子树和右子树,将左右子数组分别作为左子树和右子树的元素。
最终将构建的二叉搜索树返回。
题目三:给定一个字符串s,判断其是否为回文字符串。
自考试题解析:回文字符串是指正读和反读都相同的字符串。
可以通过双指针法进行判断。
定义两个指针,一个指向字符串的起始位置,另一个指向字符串的末尾位置,然后分别向中间靠拢。
在每一次移动指针之前,判断两个指针所指向的字符是否相等,若不相等则说明不是回文字符串;若相等则继续向中间移动。
当两个指针相遇时,说明字符串是回文字符串。
题目四:给定一个有向图,判断是否存在环路。
自考试题解析:判断有向图中是否存在环路可以使用深度优先搜索(DFS)算法。
首先,从图中的每一个顶点开始,进行深度优先搜索。
在搜索过程中,若访问到一个已经访问过的结点,则说明存在环路。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
做试题,没答案?上自考365,网校名师为你详细解答!全国2010年1月自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.若一个算法的时间复杂度用T(n)表示,其中n的含义是()A.问题规模B.语句条数C.循环层数D.函数数量答案:A解析:常识问题2.具有线性结构的数据结构是()A.树B.图C.栈和队列D.广义表答案:C解析:顺序表、单链表、双链表、循环链表、栈和队列等都是1:1关系,是线性的。
树:结点之间1:n关系,非线性的。
广义表和图是m:n关系,非线性的。
3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为()A.O(1) B.O(m)C.O(n) D.O(m+n)答案:B解析:链表A与链表B连接问题,可以这样考虑,链表A和链表B,我们只知道其头指针或头结点,我们连接是把链表A的尾部连接到链表B的头部,要知道链表A的尾部,就必须从链表A的头部做m次判断,得到链表A的尾部,然后直接和链表B的头部连接就可以了。
(原来链表A的尾部是指向NULL的,连接链表B就是把链表A尾部的NULL改为链表B的头结点的指针。
)4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是()A.2个B.3个.C.4个D.6个答案:C解析:双向循环链表中结点与结点之间有4条线,所以插入一个新结点,需要修改指针域的数量为4条。
5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()A.3 B.37C.50 D.97答案:B解析:循环队列,front=47,则rear=(front+队列元素个数)%数组长度=(47+50)%60=37。
6.若栈采用链式存储结构,则下列说法中正确的是()A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空答案:B解析:链栈由于采用链表方式作为存储方式,入栈时,使用malloc申请空间后,用指针相连接,所以结点个数没有限制,但是出栈时,如果栈中的元素个数为0,就不能再出栈了。
7.若串str=”Software”,其子串的数目是()A.8 B.9C.36 D.37答案:D解析:字串包括:单字符的字串:”S”、”o”等共8个,2个字符的字串”So”、”of”共7个,3个字符的字串”Sof”、”oft”等共6个,以此类推,可以知道总数量S=8+7+6+5+4+3+2+1=(1+8)*8/2=36。
最后别忘记了,空串””是任何字符串的字串,所以S=36+1=37.结论:求字符串的子串个数公式:S=(1+字符串长度)* 字符串长度/2+18.设有一个10阶的下三角矩阵A,采用行优先压缩存储方式,a ll为第一个元素,其存储地址为1000,每个元素占一个地址单元,则a85的地址为()A.1012 B.1017C.1032 D.1039答案:C解析:按行优先压缩,每一行10个元素。
又由于下标从1开始且是下三角,所以a85的前7行共有1+2+3+4+5+6+7=(1+7)*7/2=28个元素,第8行不满,列5前有5-1=4个元素,所以a85前共有28+4=32个元素。
又由于每个元素占一个地址单元,所以a85的地址=a11+32个元素的地址增量=1000+32*1=1032。
9.允许结点共享的广义表称为()A.纯表B.线性表C.递归表D.再入表答案:D解析:没有共享结点,没有递归结点的表是纯表。
有共享结点的表是再入表,有递归结点的表是递归表。
10.下列数据结构中,不属于二叉树的是()A.B树B.AVL树C.二叉排序树D.哈夫曼树答案:A解析:根据概念可以得到答案。
11.对下面有向图给出了四种可能的拓扑序列,其中错误..的是()A.1,5,2,6,3,4 B.1,5,6,2,3,4C.5,1,6,3,4,2 D.5,1,2,6,4,3答案:C解析:根据先找没有前驱的结点的方式,找到没有前驱的结点后,后删除该结点上的连线,可以推出C是错误的。
12.以v1为起始结点对下图进行深度优先遍历,正确的遍历序列是()A.v1,v2,v3,v4,v5,v6,v7 B.v1,v2,v5,v4,v3,v7,v6C.v1,v2,v3,v4,v7,v5,v6 D.v1,v2,v5,v6,v7,v3,v4答案:D解析:从V1出发,根据标号最小原则,深度遍历后,容易得出D是正确的。
具体遍历方式为:V1->v2->v5->v6,v6没有出度,返回v5,v5->v7,v7没有出度,返回v5,v5的2个出度(v6和v7)都已经遍历,返回v2,v2的2个出度(v5和v6)都已经遍历,返回v1,v1->v3,v3没有出度,返回v1,v1->v4,所以最后的遍历序列为v1->v2->v5->v6->v7->v3->v4。
13.下列排序算法中不稳定的是()A.快速排序B.归并排序C.冒泡排序D.直接插入排序答案:A解析:稳定的排序算法共有4个,直插、冒泡、归并、基数,其他的都是不稳定的。
14.一个有序表为(1,3,9,12,32,41,45,62,75,77,82,95,100),当采用折半查找方法查找值32时,查找成功需要的比较次数是()A.2 B.3C.4 D.8答案:B解析:第一次查找取mid=(low+high)/2=(1+13)/2=7,如果数组名为R,则R[7]=45,32比45小,则应该在前半部分再找,所以high=mid-1=6。
第二次查找取mid=(low+high)/2=(1+6)/2=3,则R[3]=9,9比32小,应该在后半部分找。
所以low=mid+1=4。
第三次查找mid=(low+high)/2=(4+6)/2=5,则R[5]=32,32==32成立,找到了。
总共查找了3次。
15.采用ISAM组织文件的方式属于()A.链组织B.顺序组织C.散列组织D.索引组织答案:B二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
错填、不填均无分。
16.数据元素及其关系在计算机存储器内的表示称为_________。
答案:存储结构。
解析:数据结构包括三个部分:逻辑结构、存储结构、算法。
17.长度为n的线性表采用单链表结构存储时,在等概率情况下查找第i个元素的时间复杂度是_________。
答案: i解析:由于单链表查找,必须从头指针或头结点开始查找。
查找第一个元素时需要的时间为1次,查找第二个元素需要判断的时间为2次,…以此类推,查找第i个元素的时间为i次。
18.下面是在顺序栈上实现的一个栈基本操作,该操作的功能是_________。
typedef struct{DataType data[100];int top;}SeqStack;DataType f18(SeqStack*S){ if(StackEmpty(S))Error(”Stack is empty”);return S->data[S->top];}答案:取栈顶元素或取栈顶元素的值解析:前面是栈的定义,函数f18中,最后一句return s->data[s->top] 。
s->top是栈顶的位置,s->data[X],表示栈的X位置上的元素值。
19.在串匹配中,一般将主串称为目标串,将子串称为_________。
答案:模式串解析:概念题,记住它。
20.已知广义表C=(a(b,c),d),则:tail(head(tail(C)))= _________。
答案: ()解析:从最里面开始,tail(C)→(d),head(tail(C))→d,tail(head(tail(C))) →()。
21.用6个权值分别为6、13、18、30、7和16的结点构造一棵哈夫曼(Huffman)树,该树的带权路径长度为_________。
答案: 219解析:这6个结点作为哈夫曼树的叶子,先选取2个最小的值作为叶子,生成一个根,…可以得到最后的哈夫曼树,算一下就知道答案了。
长度=6*4+7*4+13*3+16*2+18*2+30*2=219 。
22.已知有向图如下所示,其中顶点A到顶点C的最短路径长度是_________。
答案: 35解析:由最短路径的算法,可以得出A->D->E->C是最短路径,路径长度为2+21+12=35。
23.对序列{55,46,13,05,94,17,42}进行基数排序,第一趟排序后的结果是_________。
答案: 42,13,94,55,05,46,17解析:从个位数开始排,就可以得到答案序列。
24.高度为3的3阶B-树最少的关键字总数是_________。
答案: 7解析: B树的定义如下:一棵m阶的B-树满足下列条件:(1)树中每个结点至多有m个孩子;(2) 除根结点和叶子结点外,其它每个结点至少有┌m/2┐个孩子;(3)若根结点不是叶子结点,则至少有2个孩子;(4) 所有叶子结点都出现在同一层,叶子结点不包含任何关键字信息;(5) 有k个孩子的非终端结点恰好包含有k-1个关键字。
解题思路:(1)根据树的性质可以知道根只有一个。
Count=1.(2)根据性质(3),3阶B树的根不是叶子,至少有2个孩子。
Count=1+2=3(3)根据性质(2),可以知道第2层中的每个结点,每个结点至少有┌m/2┐个孩子,即2个孩子;所以第三层上有4个结点。
Count=1+2+4=7个结点。
且每个结点中只包含1个关键字。
25.VSAM通常作为大型索引顺序文件的标准组织,其动态索引结构采用的是_________。
三、解答题(本大题共4小题,每小题5分,共20分)26.假设二叉树的RNL遍历算法定义如下:Array若二叉树非空,则依次执行如下操作:(1)遍历右子树;(2)访问根节点;(3)遍历左子树。
已知一棵二叉树如图所示,请给出其RNL遍历的结果序列。
答案: G,C,F,A,B,D。
解析:根据定义,比较容易得到该序列。
实质上是前序序列的倒转。
27.已知一个无向图G=(V,E),其中V={A,B,C,D,E,F},邻接矩阵表示如下所示。
请回答下列问题:(1)请画出对应的图G。
(2)画出图G的邻接表存储结构。
答案:如图所示。
解析:通过矩阵中的1就可以知道哪个结点与哪个结点之间的连线。
得到图之后,生成邻接表很容易的。
28.已知一组待排记录的关键字序列为(16,12,18,60,15,36,14,18,25,85),用堆排序方法建小根堆,请给出初始建堆后的序列。