【数据结构】题库题集

1.循环队列通常用指针来实现队列的头尾相接(x)
循环队列用取模运算实现头尾相接

2. 栈是实现过程和函数等子程序所必需的结构(对)

3.有向图的邻接矩阵必定不是对称矩阵(x)

无向图的邻接矩阵一定是对称矩阵,所有边都互连

有向图的邻接矩阵可能是对称矩阵,当每个顶点之间都有两条来回相连的边时就是对称矩阵

4.算法的优劣与算法描述语言无关,但与所用计算机有关(x)

算法描述语言与算法的优劣是有一定关联的。好的算法描述语言可以更清晰地表达算法思路,使得算法更易于理解、实现和优化。相反,糟糕的算法描述语言可能导致算法难以理解和实现,甚至可能产生歧义。

5.集合与线性表的区别在于是否按关键字排序(x)

线性表不一定按关键字排序,集合内的元素毫无逻辑

关系线性表允许存在相同元素,集合不允许

6. 数组可看成线性结构的一种推广,因此与线性表一样,可以对它进行插入,删除等操作(x)

数组不能进行插入和删除,一开始的初始化就已经定义了其大小

但动态数组可以进行尾插法和尾删法

7.先根遍历森林和先序遍历与该森林对应的二叉树,其结果相同(对)

森林的先序,中序,后序遍历都与其转化的二叉树先序,中序,后序遍历相同

8.树的后根遍历序列等同于该树对应的二叉树的中序遍历(对)

树转为二叉树与森林转为二叉树相同,都是孩子兄弟法

所以树转为二叉树是没有右子树的,因为树的根节点没有兄弟

所以树的后跟遍历对应二叉树的中序遍历,先序遍历相同

由于树有多个分支,所以没有中序遍历

9.数据的逻辑结构是指数据的各数据项之间的逻辑关系(x)

逻辑结构是数据元素间的逻辑关系,而不是数据元素内部的数据项之间的关系

10.若采用三元组存储稀疏矩阵,把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算(x)

互换下标后还要根据根据下标值进行从大到小的重新排序

11. 采用顺序存储的两个栈的共享空间S[1..m],用top[i]代表第i个栈(i=1,2)的栈顶,栈1的底在S[1],栈2的底在S[m],则栈满的条件是(  B  )

A.top[2]top[1]=0     B.top[1]1= top[2]

C.top[1]top[2] =m    D.top[1]= top[2]

两个栈顶相邻表示即将栈满,加一相等表示栈满,两个栈顶相等时表示数据已经覆盖

12. 以二叉链表作为二叉树的存储结构,在具有n个结点的二叉链表中(n>0),空链域的个数为(  C  )

A.2n1    B.n1    C.nl    D.2nl

空链域即左孩子和右孩子都为空,可以看作是叶子结点

一颗树的叶子结点是非叶子结点的数量加一

所以空链域的个数可以看作是叶子结点的个数为n+1

13.一棵完全二叉树上有1001个结点,其中叶子结点的个数是(  B  )

A.500 B501 C490    D495

利用叶子结点是非叶子结点的数量加一可以直接得出

非叶子结点+叶子结点=1001,所以叶子结点=501

14.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序(  A  )

A. 不发生改变       B. 发生改变      C. 不能确定       D. 以上都不对

不管是哪一种遍历都是先从左子树开始的

先序遍历是根左右,中序遍历是左根右,后序遍历是左右根

可以发现三种遍历都是左叶子结点比右叶子结点先打印,所以其相对次序不会改变

注意:只有叶子结点才可以

15.一棵非空二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足(  C  )

A. 所有的结点均无左孩子    B. 所有的结点均无右孩子

C. 只有一个叶子结点        D. 是一棵满二叉树

所有结点均无左孩子或右孩子都是充分不必要条件

即先序的根左和后序的左根或先序的根右和后序的右根都可以实现相反,但相反不一定就是无左孩子或右孩子

只有一个叶子结点或只有一个根结点是其充要条件

16.有一个长度为12的有序表,按折半查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为(  B  )

A. 35/12    B. 37/12    C. 39/12    D. 43/12

可以将折半查找法构造为搜索二叉树

此时二叉树第一层为1,第二层为2,第三层为4,第四层为5

所以所有结点的查找次数为1*1+2*2+4*3+5*4=37次

17.设散列表长为14,散列函数为Hkey= key % 11。当前表中已有4个结点:

addr (15)=4addr (38)=5addr (61)=6addr (84)=7。如用二次探测再散列处理冲突,则关键字为49的结点的地址是(  D  )

A. 8    B. 3    C. 5    D. 9

二次探测法:采用开放定址法处理冲突中的二次探测再散列

则哈希函数变为Hash(key) = (Hash(key) + d) % 11,其中d = 1^2, -1^2, 2^2, -2^2, 3^2,……

题目中

49%11=5冲突了所以用二次探测法

(49+1)%11=6冲突

(49 -1)%11=4冲突

(49+4)%11=9不冲突

 

 

 

 

 

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值