A.1og2n B.n/2 C.n D.n+1
A.数据的逻辑结构与存储结构必定是一一对应的 B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构 D.以上三种说法都不对
A.32 B.31 C.64 D.63
A.从A开始直到A[1],每个数向后移动一个位置 B.从A[1]开始直到A,每个数向后移动一个位置 C.从A开始直到A,每个数向前移动一个位置 D.从A开始直到A,每个数向后移动一个位置
A.ABCDEFGHIJ B.ABDEGHJCFI C.ABDEGHJFIC D.ABDEGJHCFI
广度优先遍历的含义是:从图中某个顶点v出发,在访问了v之后依次访问v的各个未被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,且“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问,直至图中所有已被访问的顶点的邻接点都被访问到。()是图8-32的广度优先遍历序列。
A.1 2 6 3 4 5 B.1 2 3 4 5 6 C.1 6 5 2 3 4 D.1 6 4 5 2 3
A.6 B.7 C.8 D.9
A.6 B.4 C.3 D.2
A. B. C. D.
A.对角矩阵 B.稀疏矩阵 C.三角矩阵 D.对称矩阵
A.甲执行P B.甲执行Q C.乙执行P D.乙执行R
A.O(1) B.O(1og2 C.O(n2) D.O(
A. B. C. D.
A.2 5 3 4 6 1 B.2 5 3 4 1 6 C.2 6 5 4 1 3 D.2 6 4 5 3 1
A.cba B.bac C.bca D.abc
A.n(n+1)/2 B.nlog2n C.n(n-1)/2 D.n/2
设有二叉树如图8-15所示。 对此二叉树先序遍历的结果为()
A.ABCDEF B.BDAECF C.ABDCEF D.DBEFCA
A.查找元素所需的比较次数与元素的位置无关 B.查找序列中任何一个元素所需要的比较次数不超过log2(n+1) C.元素位置越靠近序列后端,查找该元素所需的比较次数越少 D.元素位置越靠近序列前端,查找该元素所需的比较次数越少
A.冒泡排序 B.基数排序 C.快速排序 D.归并排序
某循环队列的容量为M,队头指针指向队头元素,队尾指针指向队尾元素之后,如图 8-8所示(M=8),则队列中的元素数目为()(MOD表示整除取余运算)。
A.rear-front B.front-rear C.(rear-front+MODM D.(front-rear+MODM
A.仅设置尾指针的单向循环链表 B.仅设置头指针的单向循环链表 C.仅设置尾指针的双向链表 D.仅设置头指针的双向链表
A.5 2 3 4 6 1 B.5 2 3 4 1 6 C.2 6 4 1 3 5 D.2 5 6 4 3 1
前序遍历序列与中序遍历序列相同的二叉树为 (1) ,前序遍历序列与后序遍历序列相同的二叉树为 (2) 。
A.根结点无左子树的二叉树 B.根结点无右子树的二叉树 C.只有根结点的二叉树或非叶子结点只有左子树的二叉树 D.只有根结点的二叉树或非叶子结点只有右子树的二叉树
堆排序是一种基于___(1)___的排序方法,___(2)___不是堆。
A.计数 B.插入 C.选择 D.归并
设有n个结点进行排序,不稳定排序是 (1) ;快速排序的最大比较次数是 (2) 。
A.直接插入排序 B.冒泡排序 C.Shell排序 D.归并排序
A.转移矩阵 B.邻接矩阵 C.状态矩阵 D.优先矩阵
在排序算法中,两两比较待排序的记录,当发现不满足顺序要求时,变更它们的相对位置,这就是 (1) 排序。每次从未排序的记录中挑出最小(或最大)关键码值的记录,加入到已排序记录的末尾,这是 (2) 排序。
A.插入 B.枚举 C.交换 D.归并 E.基数 F.选择 G.希尔
可以用栈来检查算术表达式中的括号是否匹配。分析算术表达式时,初始栈为空,从左到右扫描字符,遇到字符“(”就将其入栈,遇到“)”就执行出栈操作。对算术表达式“(a+b*(a+b))/c)+(a+b)”,检查时, (1) ;对算术表达式“((a+b/(a+b)-c/a)/b”,检查时, (2) 。这两种情况都表明所检查的算术表达式括号不匹配。
(1)()
A.栈为空却要进行出栈操作 B.栈已满却要进行入栈操作 C.表达式处理已结束,栈中仍留下有字符“(” D.表达式处理已结束,栈中仍留下有字符“)”
满二叉树的特点是每层上的结点数都达到最大值,因此对于高度为h(h>1)的满二叉树,其结点总数为 (1) 。对非空满二叉树,由根结点开始,按照先根后子树、先左子树后右子树的次序,从1、2、3、…依次编号,则对于树中编号为i的非叶子结点,其右子树的编号为 (2) (高度为3的满二叉树如图8-17所示)。
A.2h B.2h-1 C.2h-1 D.2h-1+1
A.顺序 B.链接 C.散列 D.分块
A.非叶子结点只有左子树的二叉树 B.只有根结点的二叉树 C.根结点无右子树的二叉树 D.非叶子结点只有右子树的二叉树
A.nlog2n B.n2 C.n2/2 D.n
对于二维数组a[1..4,3..6],设每个元素占两个存储单元,若分别以行和列为主序存储,则元素a[3,4]相对于数组空间起始地址的偏移量分别是 (1) 和 (2) 。
A.12 B.14 C.16 D.18
A.15,28,25,56,68,63,30 B.15,28,25,30,68,63,56 C.68,28,63,25,15,56,30 D.68,56,39,63,28,25,15
A.2i B.2i-1 C.2i+1 D.2i+2
A.1 B.2 C.5 D.15
二叉树 (1) 。在完全的二叉树中,若一个结点没有 (2) ,则它必定是叶结点。 每棵树都能唯一地转换成与它对应的二叉树。由树转换成的二叉树里,一个结点N的左子结点是N在原树里对应结点的 (3) ,而N的右子结点是它在原树里对应结点的 (4) 。
A.是特殊的树 B.不是树的特殊形式 C.是两棵树的总称 D.是只有两个根结点的树形结构
设有n个结点进行排序,不稳定排序是 (1) ;快速排序的最坏时间是 (2) 。
A.直接插入排序 B.冒泡排序 C.希尔排序 D.归并排序
A.冒泡排序和快速排序 B.直接插入排序和简单选择排序 C.冒泡排序和简单选择排序 D.直接插入排序和快速排序
A.480 B.192 C.216 D.144
阅读下列说明、流程图和算法进行填空。 下面的流程图用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A[i],并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如图8-34所示。 算法说明:将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int A[],int low,int high)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数void sort(int A[],int L,int H)的功能是实现数组A中元素的递增排序。 算法如下。 void sort(int A[],int L,int H) { if (L<H) { k=p(A,L,H); //p()返回基准数在数组A中的下标 sort( (4) ); //小于基准数的元素排序 sort( (5) ); //大于基准数的元素排序 } }
j--
正规式(1|3|5)(202)(c|de)表示的正规集合中元素数目为 (1) , (2) 是该正规集合中的元素。
A.6 B.7 C.8 D.无穷
(2)()
A.A B.B C.C D.D
A.左子结点 B.右子结点 C.左子结点或者没有右子结点 D.兄弟
A.O(nlog2 B.O(n2) C.O(n2/2) D.O(
A.135202cde B.1202c C.302cde D.52c
A.12 B.16 C.17 D.20
A.78 B.72 C.66 D.84
A.最左子结点 B.最右子结点 C.最邻近的右兄弟 D.最邻近的左兄弟 E.最左的兄弟 最右的兄弟
A.2 B.3 C.4 D.5
A.310 B.311 C.315 D.314
A.A的秩等于n B.A的秩不等于0 C.A的行列式值不等于0 D.A存在逆矩阵
A.树 B.图 C.栈 D.队列