数据结构一些重要习题
1.组成数据的基本单位是( C )。
(A 数据项
(B 数据类型
(C 数据元素
(D 数据变量
//基本单位是数据元素,数据不可分割的最小单位是数据项,数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。
7.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为( C )。
(A 100
(B 40
(C 55
(D 80
//十阶对称矩阵压缩,即10x10=100个元素压缩,除去对角线无重复项,剩下90个元素皆有重复项,所以90/2+10=55
- 设有以下四种排序方法,则( B )的空间复杂度最大。
(A 冒泡排序
(B 快速排序
(C 堆排序
(D 希尔排序
//快排的空间复杂度是nlog2n,其他均为O(1),在此不考虑基数排序。
3.数组的逻辑结构不同于下列( D )的逻辑结构。
(A 线性表
(B 栈
(C 队列
(D 树
//树是非线性结构,而数组是线性结构
4.二叉树中第i(i≥1)层上的结点数最多有( C )个。
(A 2i
(B 2^i
(C 2^(i-1)
(D 2i-1
//本题主要考察二叉树基本公式及其性质,计算每层的节点数的公式为2^(i-1),计算总节点数时公式为 2的i次方 -1,注意区别,一个是在指数减1,一个是计算完减1。
9.根据二叉树的定义可知二叉树共有( B )种不同的形态。
(A 4
(B 5
(C 6
(D 7
//自己画一下,用2层满完全二叉树,可知有五个形态
2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有( B )个空指针域。
(A 2m-1
(B 2m
(C 2m+1
(D 4m
//哈夫曼树中没有度数为1的结点,因此,只有度为2和度为0的结点,如果用二叉链表来存储,度为2的结点的左右孩子都存在,没有空指针,度为0的叶子没有孩子,因此左右孩子的链域都为空,因此该Huffman树一共有2m个空指针。
7.设某有向图中有n个顶点,则该有向图对应的邻接表中有( B )个表头结点。
(A n-1
(B n
(C n+1
(D 2n-1
//拿来凑一下数目,不必过多在意,是个很简单的题。
5.设某完全无向图中有n个顶点,则该完全无向图中有( A )条边。
(A n(n-1)/2
(B n(n-1)
(C n2
(D n2-1
//如果公式记不住,可以自己用代值法解决,如果细想,那么第一个结点必定有n-1条边,第二个必定有n-2条边,第n个必定有0条边(不计算重复的情况下),等差数列求和,n(n-1)/2。
3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为( C )。
(A R-F
(B F-R
(C (R-F+M)%M
(D (F-R+M)%M
//注意是循环队列即可
1.设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A是( B )。
(A 线性结构
(B 树型结构
(C 物理结构
(D 图型结构
//从关系表r可以看出来是树型(并没有规定是二叉树)
4.设有n个待排序的记录关键字,则在堆排序中需要( A )个辅助记录单元。
(A 1
(B n
(C nlog2n
(D n2
//除了快排,都是O(1)
5.设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为( A )。
(A 10,15,14,18,20,36,40,21
(B 10,15,14,18,20,40,36,21
(C 10,15,14,20,18,40,36,21
(D 15,10,14,18,20,36,40,21
//这道题放在这主要想提醒读者快排的过程,去熟知了解之后自然很简单。
7.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为( D )。
(A n,e
(B e,n
(C 2n,e
(D n,2e
//表结点不包括表头结点
10.下列四种排序中( D )的空间复杂度最大。
(A 插入排序
(B 冒泡排序
(C 堆排序
(D 归并排序
//虽然都是O(1),但实际上代表的都是常数级,并不相同,在这道题中,归并排序最大。