数据结构历年习题及答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题(10×1 = 10 分) 1、常见的四类基本数据结构有:集合、线性结构、树形结构、图状结构。 2、a=“ABCDEFG”,b =“CDEF”.则串 a 的长度为 7,串 b 在串 a 中的位置为 3。 3、设 P 是指向线性链表的第 i 个元素,且 P->next->next 指向第 i+2 元素 4、对于对称矩阵,我们可以为每一对对称元分配一个存储空间,于是,可以把 n2 个元 压缩到(1+n)*n/2 个元的空间中。 5、广义表 E = (a,E)的长度为 2 6、二叉树的第 i 层最多有 2^(i-1)个结点,深度为 k 的二叉树最多有 2^k-1 个结点。 7、在队列中,允许插入的一端为队尾,允许删除的一端为对头. 8、利用 MST 性质来构造最小生成树的两种常用算法为 prim 和克鲁斯卡尔. 9、使用折半查找时,静态查找表必须不仅是有序表,并且连续存储. `10、快速排序的时间复杂度为 nlogn,空间复杂度为 logn。 6、对于一棵具有 30 个结点二叉树,若一个结点的编号为 5,则它的左孩子结点的编号 为 10,右孩子结点的编号为 11,双亲的编号为 2。 1 、 T2006011000080000270 设 Q[0..N-1]为循环队列,其头、尾指针分别为 P 和 R, 则队 Q 中当前所含元素个数为(R-P+N)%N。 3、设一个线性表的长度为 50,P 是指向线性链表的第 10 个元素,且 P->next->next 指 向第 12 元素。 1 、在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,用二分(折半)法查找关键字值 20,需做的关键字比较次数为 4。 2 、设存储一个整数和存储一个地址都需要 2 个字节的内存空间。若用不带表头结点的 单向链表来表示一个长度为 n,元素值为整数的线性表 ,则共需占用 4n+2 个字节的 内存空间。 (说明:包括表头指针) 3 、循环队列用数组 A[0..m-1]存放其元素值,已知其头尾指针分别是 front 和 rear ,则 当前队列的元素个数是(rear-front+m)%m。 4 、抽象数据类型的三大要素为数据对象,数据关系,基本操作。 5 、在双向链表结构中,若要求在 p 指针所指的结点之前插入指针为 s 所指的结点, 则需执行下列语句: s->next=p; s->prior=p->prior ; p->prior->next=s;s->prior=s。 6 、空格串的长度等于空格的个数。 7 、栈和队列的区别仅在于删除操作定义不相同。 8 、若一个图的顶点集为{a,b,c,d,e,f},边集为{(a,b),(a,c),(b,c),(d,e)},则该图含有 3 个连 通分量 9 、用整数 1, 2, 3, 4, 5 作为 5 个树叶的权值,可以构造出 16 棵最优二叉树。 10 、 二叉树结点的中序序列为 A,B,C,D,E,F,G,后序序列为 B,D,C,A,F,G,E,则该二叉树
A.随机访问
B.不必事先估计所需存储空间大小
C.插入与删除时不必移动元素 D.所需空间与线性表长度成正比
2、 向顺序栈中压入新元素时,应当(B). A.先移动栈顶指针,再存入元素 B.先存入元素,再移动栈顶指针
C.先后次序无关紧要
D.同时进行
3、 具有 65 个结点的完全二叉树的高度为(B). (根的层次号为 1)
法解决冲突,则填入关键字 38 其地址应该为(A)(哈希函数为 h(key)=key mod 11)
A.4
B.5
C.3
D.6
10、在一个无向图中,所有顶点的度数之和等于所有边数的(B)倍.
A.3
B.2
C.1
D.1/2
8、对有 14 个数据元素的有序表 R[14]进行折半搜索,搜索到 R[3]的关键码等于给定值,
定该树的逻辑结构。 (对的) 33、 用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关(错误)
34、 不同的求最小生成树的方法最后得到的生成树是相同的.。(错误) 10、含有 n 个结点的二叉排序的平均查找长度和树的形态有关(对的)
三、选择题(10×2=20 分)
1、 线性链表不具有的特点(A).
12、 在具有 N 个单元的顺序存储的循环队列中,假定 front 和 rear 分别为队首指
针和队尾指针,则判断队空的条件为(B)。
A. rear==0 C. rear% MAXSIZE == front
B. front==rear D. (rear+1)% MAXSIZE ==front
13、 引入二叉线索树的目的是(D)
A. 为了能在二叉树中方便的进行插入与删除
B. 使二叉树的遍历结果唯一
C. 为了能方便的找到双亲
D. 便于在中序下查找前驱结点和后继结点
14、 已知某二叉树的后序遍历序列是 dabec, 中序遍历序列是 debac , 它的前序遍
B.{38,79,56,46,40,84}
C.{40,38,46,56,79,84}
D.{38,46,56,79,40,84}
8、下列那种排序方法是稳定的(D). A.快速排序 C.希尔排序
B.堆排序 D.直接插入排序
9、长度为 11 的哈希表中已经填有关键字 17,60,29 的记录,采用二次探测再散列方
A. O(n)
B. O(n*n)
C. O(nlogn)
D. O(n*n+2n)
9、 在一个长度为 n(n>1)的单链表上,设有头和尾两个指针,执行 A,C 操作与链
表的长度无关。
A. 删除单链表中的第一个元素
B. 删除单链表中的最后一个元素
C. 在单链表最后一个元素后插入一个新元素
D. 在单链表中任意位置插入一个新元素
二、判断(对的打∨,错误打×, 10×1 = 10 分) 1、 在数据元素的非空有限集中,存在唯一的一个被称为”前驱”的元素,也存在唯一的 一个称为”后继”的元素(错误) 2、 一般情况下,在第 i(1<= i <=n) 个元素之前插入一个元素,需要将第 n 个到第 i 个 元素向后移动一个位置,移动元素的个数为 n-i+1(如果是顺序表是对的) 3、 由于链式存储结构不要求逻辑上相邻的元素在物理位置上也相邻,因此,它具有随 机存取的优点(错误 顺序表的存储方式是随机存储) 4、 队列的基本特征是先进后出(错误 是先进先出) 5、 非空完全二叉树的一个任意结点的右子树深度与其左子树深度的差值或者为 0 或者 为 1。(错误) 6、 n 个结点的二叉链表中必定存在 n+1 个空链域。(对的) 7、 赫夫曼树是指带权路径长度 WPL 最小的二叉树。一般而言,在给定条件下构造出 的赫夫曼树不是唯一的。(对的) 8、 路径长度最长的路径为关键路径。(对的) 9、 先序遍历二叉排序树可得到一个关键字有序的序列。(错误 应该是中序历遍) 10、 希尔排序中,增量 d 值的选择应为一个素数,并且在最后一趟排序时必须为 1(对的) 11、带权的无向连通图的最小生成树是唯一的。(错误的)
A.左、右子树的高度均相同
B.左、右子树高度差的绝对值不
超过 1
C.左子树的高度均大于右子树的高度 D.左子树的高度均小于右子树的高度
7、一个对象序列的排序码为{46,79,56,38,40,84},采用快速排序以位于最左位置的对
象为基准而得到的第一次划分结果为(C).
A.{38,46,79,56,40,84}
望运行时间。(对的) 27、 线性表的特点是每个元素都有一个前驱和一个后继。(错误) 28、 顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。(错误) 29、 n 个元素进队列的顺序和出队列的顺序总是一致的。(对的) 30、 空串是指仅由一个或多个空格组成的串。(错误) 31、 将一棵树转成二叉树,根结点没有左子树。(错误) 32、 当树中结点数多于 1 个时,不可能根据结点的前序序列和后序序列唯一地确
A.8
B.7
C.6
D.5
4、 由权值分别为 3,8,10,2,6 的叶子结点生成一棵哈曼数,则其中非终端结点数 为(C)。
A. 2
B. 3
C. 4
D. 5
5、 n 个顶点的有向完全图中含有向边的数目最多为(D)
ቤተ መጻሕፍቲ ባይዱ
A.n-1
B.n
C.n(n-1)/2
D.n(n-1)
6、ALV 树是一种平衡的二叉排序树,树中任一结点的(B)
对应的树林包括 2 棵树。 1 、空间复杂度指算法执行过程中所需要的最大存储空间。 2 、对于频繁进行插入和删除的线性表,宜采用链表做存储结构。 3 、已知顺序表中一个元素的存储位置是 x,每个元素占 c 个字节,求其后续元素的 存储位置计算公式为 x+(i-1)*c 4 、栈是一种具有先进后出特性的线性表。 5 、在循环单链表中,最后一个结点的指针指向头结点。 6 、8 层完全二叉树至少有 128 个结点。 7 、栈和队列的区别仅在于线性表操作定义不相同。 8 、有数据 WG={7,19,2,6,32,3,21,10},则所建 Huffman 树的带权路径长度 WPL 为 261。 9 、已知一个连通图的边集为{(1,2)3, (1,3)6, (1,4)8, (2,3)4, (2,5)10, (3,5)12, (4,5)2},则度 为 3 的顶点个数有 4 个 10 、 顺序查找 n 个元素的顺序表,若查找成功,则比较关键字的次数最多为 n 次。
法 错误 十字链表法改为块链存储表示 17、 因为广义表是线性表的推广,故广义表只能表示线性结构,不能表示树形结构 错误的 18、 类似于算法的时间复杂度,空间复杂度可以作为算法所需存储空间的量度。(对
的) 19、 往顺序表中插人一个元素,平均要移动大约一半的元素。(对的) 20、 结点的指针字段为空,说明该字段中没有存放任何信息。(错误) 21、 在 n 个元素进栈后,它们的出栈顺序和进栈顺序一定正好相反。(错误) 22、 二叉树中序线索化后,不存在空指针域。(错误) 23、 赫夫曼树一定是满二叉树。(错误) 24、 在 n 个结点的无向图,若边数大于 n-1,则该图必是连通图. (错误) 25、 就平均查找长度而言,分块查找最小,折半查找次之,顺序查找最大。(错误) 26、 平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,算法的期
10、 有六个元素 6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序
列?( B)
A. 2 3 4 1 5 6
B. 1 2 4 5 3 6
C. 6 4 5 1 2 3 11、 对于栈操作数据的原则是(A)。
D. 4 5 3 1 2 6
A. 先进后出
B. 不分顺序
C. 后进后出
D. 先进先出
的数量级称为渐进时间复杂度。对的 15、 在双向链表中,如 d 指向表中某个结点的指针,则显然有:
d->next ->prior = d->prior ->next = d 对的 16.栈是限定仅在表头进行插入或删除操作的线性表 对的 16、 串的三种常用存储表示法有:定长顺序存储表示、堆分配存储表示和十字链表
12. 装载因子是散列表的一个重要参数,它反映了散列表的装满程度。(对的) 12、 非空完全二叉树的一个任意结点的右子树深度与其左子树深度的差值或者为
0 或者为 1。(错误) 13、 一般情况下,在第 i(1<= i <=n) 个元素之前插入一个元素,需要将第 n 个到第
i 个元素向后移动一个位置,移动元素的个数为 n-i(错误 n-i+1) 14、 如果将算法中的所有语句数之和为 T(n),则当问题规模趋向无穷大时,T(n)
此时元素比较顺序依次为(C)。
A.R[0],R[1],R[2],R[3]
B.R[0],R[13],R[2],R[3]
C.R[6],R[2],R[4],R[3]
D.R[6],R[4],R[2],R[3]
6、 具有 63 个结点的完全二叉树的高度为(C). (根的层次号为 1)
A.8
B.7
C.6
D.5
7、 算法的时间复杂度与 B 有关。
A. 计算机硬件性能
B. 问题规模
C. 内存芯片的有关参数
D. 编译程序质量
8、 下面算法的时间复杂度为 A。
int f( unsigned int n )
{ if ( n==0 || n==1 ) return 1; else return n*f(n-1); }
A.随机访问
B.不必事先估计所需存储空间大小
C.插入与删除时不必移动元素 D.所需空间与线性表长度成正比
2、 向顺序栈中压入新元素时,应当(B). A.先移动栈顶指针,再存入元素 B.先存入元素,再移动栈顶指针
C.先后次序无关紧要
D.同时进行
3、 具有 65 个结点的完全二叉树的高度为(B). (根的层次号为 1)
法解决冲突,则填入关键字 38 其地址应该为(A)(哈希函数为 h(key)=key mod 11)
A.4
B.5
C.3
D.6
10、在一个无向图中,所有顶点的度数之和等于所有边数的(B)倍.
A.3
B.2
C.1
D.1/2
8、对有 14 个数据元素的有序表 R[14]进行折半搜索,搜索到 R[3]的关键码等于给定值,
定该树的逻辑结构。 (对的) 33、 用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关(错误)
34、 不同的求最小生成树的方法最后得到的生成树是相同的.。(错误) 10、含有 n 个结点的二叉排序的平均查找长度和树的形态有关(对的)
三、选择题(10×2=20 分)
1、 线性链表不具有的特点(A).
12、 在具有 N 个单元的顺序存储的循环队列中,假定 front 和 rear 分别为队首指
针和队尾指针,则判断队空的条件为(B)。
A. rear==0 C. rear% MAXSIZE == front
B. front==rear D. (rear+1)% MAXSIZE ==front
13、 引入二叉线索树的目的是(D)
A. 为了能在二叉树中方便的进行插入与删除
B. 使二叉树的遍历结果唯一
C. 为了能方便的找到双亲
D. 便于在中序下查找前驱结点和后继结点
14、 已知某二叉树的后序遍历序列是 dabec, 中序遍历序列是 debac , 它的前序遍
B.{38,79,56,46,40,84}
C.{40,38,46,56,79,84}
D.{38,46,56,79,40,84}
8、下列那种排序方法是稳定的(D). A.快速排序 C.希尔排序
B.堆排序 D.直接插入排序
9、长度为 11 的哈希表中已经填有关键字 17,60,29 的记录,采用二次探测再散列方
A. O(n)
B. O(n*n)
C. O(nlogn)
D. O(n*n+2n)
9、 在一个长度为 n(n>1)的单链表上,设有头和尾两个指针,执行 A,C 操作与链
表的长度无关。
A. 删除单链表中的第一个元素
B. 删除单链表中的最后一个元素
C. 在单链表最后一个元素后插入一个新元素
D. 在单链表中任意位置插入一个新元素
二、判断(对的打∨,错误打×, 10×1 = 10 分) 1、 在数据元素的非空有限集中,存在唯一的一个被称为”前驱”的元素,也存在唯一的 一个称为”后继”的元素(错误) 2、 一般情况下,在第 i(1<= i <=n) 个元素之前插入一个元素,需要将第 n 个到第 i 个 元素向后移动一个位置,移动元素的个数为 n-i+1(如果是顺序表是对的) 3、 由于链式存储结构不要求逻辑上相邻的元素在物理位置上也相邻,因此,它具有随 机存取的优点(错误 顺序表的存储方式是随机存储) 4、 队列的基本特征是先进后出(错误 是先进先出) 5、 非空完全二叉树的一个任意结点的右子树深度与其左子树深度的差值或者为 0 或者 为 1。(错误) 6、 n 个结点的二叉链表中必定存在 n+1 个空链域。(对的) 7、 赫夫曼树是指带权路径长度 WPL 最小的二叉树。一般而言,在给定条件下构造出 的赫夫曼树不是唯一的。(对的) 8、 路径长度最长的路径为关键路径。(对的) 9、 先序遍历二叉排序树可得到一个关键字有序的序列。(错误 应该是中序历遍) 10、 希尔排序中,增量 d 值的选择应为一个素数,并且在最后一趟排序时必须为 1(对的) 11、带权的无向连通图的最小生成树是唯一的。(错误的)
A.左、右子树的高度均相同
B.左、右子树高度差的绝对值不
超过 1
C.左子树的高度均大于右子树的高度 D.左子树的高度均小于右子树的高度
7、一个对象序列的排序码为{46,79,56,38,40,84},采用快速排序以位于最左位置的对
象为基准而得到的第一次划分结果为(C).
A.{38,46,79,56,40,84}
望运行时间。(对的) 27、 线性表的特点是每个元素都有一个前驱和一个后继。(错误) 28、 顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。(错误) 29、 n 个元素进队列的顺序和出队列的顺序总是一致的。(对的) 30、 空串是指仅由一个或多个空格组成的串。(错误) 31、 将一棵树转成二叉树,根结点没有左子树。(错误) 32、 当树中结点数多于 1 个时,不可能根据结点的前序序列和后序序列唯一地确
A.8
B.7
C.6
D.5
4、 由权值分别为 3,8,10,2,6 的叶子结点生成一棵哈曼数,则其中非终端结点数 为(C)。
A. 2
B. 3
C. 4
D. 5
5、 n 个顶点的有向完全图中含有向边的数目最多为(D)
ቤተ መጻሕፍቲ ባይዱ
A.n-1
B.n
C.n(n-1)/2
D.n(n-1)
6、ALV 树是一种平衡的二叉排序树,树中任一结点的(B)
对应的树林包括 2 棵树。 1 、空间复杂度指算法执行过程中所需要的最大存储空间。 2 、对于频繁进行插入和删除的线性表,宜采用链表做存储结构。 3 、已知顺序表中一个元素的存储位置是 x,每个元素占 c 个字节,求其后续元素的 存储位置计算公式为 x+(i-1)*c 4 、栈是一种具有先进后出特性的线性表。 5 、在循环单链表中,最后一个结点的指针指向头结点。 6 、8 层完全二叉树至少有 128 个结点。 7 、栈和队列的区别仅在于线性表操作定义不相同。 8 、有数据 WG={7,19,2,6,32,3,21,10},则所建 Huffman 树的带权路径长度 WPL 为 261。 9 、已知一个连通图的边集为{(1,2)3, (1,3)6, (1,4)8, (2,3)4, (2,5)10, (3,5)12, (4,5)2},则度 为 3 的顶点个数有 4 个 10 、 顺序查找 n 个元素的顺序表,若查找成功,则比较关键字的次数最多为 n 次。
法 错误 十字链表法改为块链存储表示 17、 因为广义表是线性表的推广,故广义表只能表示线性结构,不能表示树形结构 错误的 18、 类似于算法的时间复杂度,空间复杂度可以作为算法所需存储空间的量度。(对
的) 19、 往顺序表中插人一个元素,平均要移动大约一半的元素。(对的) 20、 结点的指针字段为空,说明该字段中没有存放任何信息。(错误) 21、 在 n 个元素进栈后,它们的出栈顺序和进栈顺序一定正好相反。(错误) 22、 二叉树中序线索化后,不存在空指针域。(错误) 23、 赫夫曼树一定是满二叉树。(错误) 24、 在 n 个结点的无向图,若边数大于 n-1,则该图必是连通图. (错误) 25、 就平均查找长度而言,分块查找最小,折半查找次之,顺序查找最大。(错误) 26、 平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,算法的期
10、 有六个元素 6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序
列?( B)
A. 2 3 4 1 5 6
B. 1 2 4 5 3 6
C. 6 4 5 1 2 3 11、 对于栈操作数据的原则是(A)。
D. 4 5 3 1 2 6
A. 先进后出
B. 不分顺序
C. 后进后出
D. 先进先出
的数量级称为渐进时间复杂度。对的 15、 在双向链表中,如 d 指向表中某个结点的指针,则显然有:
d->next ->prior = d->prior ->next = d 对的 16.栈是限定仅在表头进行插入或删除操作的线性表 对的 16、 串的三种常用存储表示法有:定长顺序存储表示、堆分配存储表示和十字链表
12. 装载因子是散列表的一个重要参数,它反映了散列表的装满程度。(对的) 12、 非空完全二叉树的一个任意结点的右子树深度与其左子树深度的差值或者为
0 或者为 1。(错误) 13、 一般情况下,在第 i(1<= i <=n) 个元素之前插入一个元素,需要将第 n 个到第
i 个元素向后移动一个位置,移动元素的个数为 n-i(错误 n-i+1) 14、 如果将算法中的所有语句数之和为 T(n),则当问题规模趋向无穷大时,T(n)
此时元素比较顺序依次为(C)。
A.R[0],R[1],R[2],R[3]
B.R[0],R[13],R[2],R[3]
C.R[6],R[2],R[4],R[3]
D.R[6],R[4],R[2],R[3]
6、 具有 63 个结点的完全二叉树的高度为(C). (根的层次号为 1)
A.8
B.7
C.6
D.5
7、 算法的时间复杂度与 B 有关。
A. 计算机硬件性能
B. 问题规模
C. 内存芯片的有关参数
D. 编译程序质量
8、 下面算法的时间复杂度为 A。
int f( unsigned int n )
{ if ( n==0 || n==1 ) return 1; else return n*f(n-1); }