下面关于B和B+树的叙述中,不正确的是( )。
在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为O的结点数为( )个。
某个任务的数据模型可以抽象为给定的k个集合:S
1
,S
2
,…,S
k
。其中S
i
(1≤i≤k)中的元素个数不定。在处理数据过程中将会涉及元素的查找和新元素的插入两种操作,查找和插入时用一个二元组(i,x)来规定一个元素,i是集合的序号,x是元素值。设计一种恰当的数据结构来存储这k个集合的元素,并能高效地实现所要求的查找和插入操作。
(1)构造数据结构,并且说明选择的理由。
(2)若一组数据模型为S
1
={10.2,1.7,4.8,16.2},S
2
={1.7,8.4,0.5},S
3
={4.8,4.2,3.6,2.7,5.1,3.9},待插入的元素二元组为(2,11.2)和(1,5.3),按你的设计思想画出插入元素前后的数据结构状态。
若有N个元素已构成一个小根堆,那么如果增加一个元素为K
n+1
,请用文字简要说明如何在log
2
n的时间内将其重新调整为一个堆。
关于链表的特点,下面的叙述中不正确的是( )。
若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为( )。
设计一个算法求图的中心点。设v是有向图G的一个顶点,把v的偏心度定义为: MAX{从w到v的最短距离|w属于V(G)} 如果v是有向图G中具有最小偏心度的顶点,则称顶点v是G的中心点。
用邻接矩阵A表示图,判定任意两个顶点v
i
和v
j
之间是否有长度为m的路径相连,则只要检查( )的第i行第j列的元素是否为零即可。
某个待排序的序列是一个可变长度的字符串序列,这些字符串一个接一个地存储于唯一的字符数组中。请改写快速排序算法,对这个字符串序列进行排序。
具有10个叶结点的二叉树中有( )个度为2的结点。
在对一组记录(50,40,95,20,15,70,60,45,80)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较( )次。
线性表(a
1
,a
2
,a
3
,…,a
n
)中元素递增有序且按顺序存储于计算机内。要求设计算法完成以下内容:
(1)用最少的时间在表中查找数值为x的元素。
(2)若找到将其与后继元素位置相交换。
(3)若找不到将其插入表中并使表中元素仍递增有序。
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,’#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号("("和")")是否配对。要求:
已知下列各种初始状态(长度为n)元素,试问当利用直接插入法进行排序时,至少需要进行多少次比较(要求排序后的文件按关键字从大到小顺序排列)?
(1)关键字自小到大有序(key
1
<key
2
<…<key
n
);
(2)关键字自大到小逆序(key
1
>key
2
>…>key
n
);
(3)奇数关键字顺序有序,偶数关键字顺序有序(key
1
<key
3
<…,key
2
<key
4
<…);
(4)前半部分元素按关键字顺序有序,后半部分元素按关键字顺序逆序(key
1
<key
2
<…<key
m
,key
m+1
>key
m+2
>…>key
n
,m为中间位置)。
已知有一维数组A[0..m×n一1],若要对应为m行、n列的矩阵,将元素A[k](0≤k
在一棵二叉树中,单分支结点数为30,双分支结点数为15,则叶子结点数为( )。
设某二叉树中只有度为0和度为2的结点,如果此二叉树的高度为100,那么此二叉树中所包含的结点数最少为( )。
在含有15个结点的平衡二叉树上,查找关键字为28(存在该结点)的结点,则依次比较的关键字有可能是( )。
假设一个序列1,2,3,…,n依次进栈,如果出栈的第一个元素是n,那么第i(1≤i≤n)个出栈的元素是( )。
一个递归算法必须包括( )。
