else if (L.data[mid]>x) bisearch(L,low,mid-1,x); else
bisearch(L,mid+1,high,x); } }//bisearch
. A. A. mid< (low+high)/2 . B. mid=(low+high)/2 . C. mid>(low+high)/2; . D. mid!=(low+high); .
.5 5.设计算法判定给定二叉树是否为二叉排序树。 void BSTree(BiTree t,int &flag,int &last);//声明Status IsBSTree(BiTree t){ int flag = 1; int last =0; BSTree(t,flag,last); return flag;}void BSTree(BiTree t,int &flag,int &last)//取地址不需要返回值{ if(t->lchild&&flag) BSTree(t->lchild,flag,last);//遍历左子树 if(t->data.key>last&&flag) last = t->data.key;else flag=0;//last原为父节点值,但到了树叶节点后被树叶节点的key值覆盖,然后开始向上反馈keyif(t->rchild&&flag) } . A. BSTree(t->rchild,flag,last); . B. BSTree(t->lchild,flag,last); . C. BSTree(t->rchild,last,flag); . D. BSTree(t->lchild,last,flag); . .6 m阶B_树中的m是指?
. A. 每个结点至少有m棵子树 . B. 每个结点至多有m棵子树 . C. 非终端结点中关键字的个数 . D. m阶B_树的深度(或高度) . 第九章单元测试 .
总题数:61 1.设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4 的一趟希尔排序结束后前4条记录关键字为( )。 . A. 40,50,20,95 . B. 15,40,60,20 . C. 15,20,40,45 . D. 45,40,15,20 .
.2 2.快速排序方法在情况下最不利于发挥其长处。( )
. A. 要排序的数据量太大。 . B. 要排序的数据中含有多个相同值 . C. 要排序的数据已基本有序 . D. 要排序的数据个数为奇数 .
.3 一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始推为( )。
. A. 79,46,56,38,40,80 . B. 84,79,56,38,40,46 . C. 84,79,56,46,40,38 . D. 84,56,79,40,46,38 .
.4 设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为( )。
. A. 15,25,35,50,20,40,80,85,36,70 . B. 15,25,35,50,80,20,85,40,70,36 . C. 15,25,35,50,80,85,20,36,40,70 . D. 15,25,35,50,80,20,36,40,70,85 .
.5 试以L.r[k+1]作为监视哨改写教科书10.2.1节中给出的直接插入排序算法。其中,L.r[1..k]为待排序记录且k
.6 1.编写算法,对n个关键字取整数值的记录序列进行整理,以使所有关键字为负值的记录排在关键字为非负值的记录之前,要求:(1)采用顺序存储结构,至多使用一个记录的辅助存储空间;(2)算法的时间复杂
度为O(n);void Divide(int a[ ],int n)//把数组a中所有值为负的记录调到非负的记录之前 {
low=0;high=n-1; while( ) {
while(low
while(low
}//Divide . A. low< =(high+1) . B. (low+1)< high . C. low!=high . D. low< high .
智慧树数据结构答案2018知到数据结构答案章测试答案
搜索薇芯松丛号,选修宝,得完整答案