更多"以下将ah,…am,和am+1…an,两个有序序列(它们相应的关键字值"的相关试题:
[填空题]在一棵二叉排序树中,按 【5】 遍历得到的结点序列是有序序列。
[填空题]在一棵二叉排序树中,按 【5】 遍历得到的节点序列是有序序列。
[填空题]在一棵二叉排序树中,按 ______ 遍历得到的结点序列是有序序列。
[单项选择]将一个无序序列中的元素依次插入到一棵(),并进行中序遍历,可得到一个有序序列。
A. 完全二叉树
B. 最小生成树
C. 二叉排序树
D. 最优二叉树
[单项选择]序列图有两个不同于协作图的特征,它们是()。
A. 协作图有对象线、协作图有控制焦点
B. 协作图有对象线、序列图有控制焦点
C. 序列图有对象生命线、序列图有控制焦点
D. 序列图有对象生命线、协作图有控制焦点
[填空题]
下面程序的功能是;将两个有序链表(降序捧序)合并为一个有序链表,函数merge(node *h1,node *h2)将由h1和h2分别指向的己排序的两个链表,合并为一个依然有序的链表。注意;对于数据大小相同的结点,都要保留在合并后的链表上。主函数产生两条已降序排序的链表,并输出合并后链表上的数据值.
例如,原链表上各结点的数据依次为;
h1:15,9,8,7,3
h2:15,12,10,7,3,2
合并后得到的新链表为;15,15,12, 10,9,8,7,7,3,3,2
【程序]
#include
struct node{
int data;
node*next;
};
node *merge(node *h1,node *h2)
{
if(h1==NULL) return h2;
if(h2==NULL) return h1;
node *h=NULL;
if(___(1)___){
h=h1;
h1=h1->next;
}
else{
h=h2;
h2=h2->next;
}
node *p=h;
while(___(2)___){
if(h1->data >=h2->data){
p->next=h1;
p=h1;
h1=h1->next;
}
else{
p->next=h2;
p=
[简答题]假设有一个长度为n的有序序列,在进行查找时,可以借助二叉树来进行,请结合二叉树的性质来分析二分查找的最坏性能和平均性能。
[单项选择]将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是 (28) 。
A. n-1
B. n
C. 2n-1
D. 2n
[单项选择]用递归算法实现n个相异元素构成的有序序列的二分查找,采用一个递归工作栈时,该栈的最小容量应为()。
A. n
B. n/2
C. 10g2n
D. 10g2(n+1)
[单项选择]两个递增序列A和B的长度分别为m和n(m<n),将二者归并为一个长度为m+n的递增序列时,(),归并过程中元素的比较次数最少。
A. 当A的最大元素大于B的最大元素时
B. 当A的最大元素小于B的最小元素时
C. 当A的最小元素大于B的最小元素时
D. 当A的最小元素小于B的最大元素时
[单项选择]如果待排序序列中两个元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。()是稳定的排序方法,因为这种方法在比较相邻元。
A. 冒泡排序
B. 希尔排序
C. 快速排序
D. 简单选择排序
[单项选择]如果待排序序列中两个数据元素具有相同的值,在排序后它们的位置发生颠倒,则称该排序是不稳定的。下列不稳定的排序方法是
A. 起泡排序
B. 归并排序
C. 直接插入排序
D. 直接选择排序