对于同一组关键码互不相同的记录,若生成二叉搜索树时插入记录的次序

题目

对于同一组关键码互不相同的记录,若生成二叉搜索树时插入记录的次序不同则得到不同形态的二叉搜索树。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

对关键码集合K={53,30,37,12,45,24,96},从空二叉树开始逐个插入每个关键码,建立与集合K相对应的二叉排序树(又称二叉查找树)BST,若希望得到的BST高度最小,应选择的输入序列是( )。

A.45,24,53,12,37,96,30

B.37,24,12,30,53,45,96

C.12,24,30,37,45,53,96

D.30,24,12,37,45,96,53


正确答案:B

第2题:

在二叉查找树中,新插入的关键码总是处于最底层。()

此题为判断题(对,错)。


答案:错误

第3题:

●最佳二叉搜索树是 (36) 。

(36) A.关键码个数最少的二叉搜索树

B.搜索时平均比较次数最少的二叉搜索树

C.所有结点的左子树都为空的二叉搜索树

D.所有结点的右子树都为空的二叉搜索树


正确答案:B
【解析】最佳二叉搜索树是搜索时平均比较次数最少的二叉搜索树。

第4题:

设二叉树中共有15个结点,其中的结点值互不相同。如果该二叉树的前序序列与中序序列相同,则该二叉树的深度为()。

A.15

B.6

C.4

D.不存在这样的二叉树


正确答案:A

第5题:

对关键码集合K={53,30,37,12,45,24,96),从空二叉树开始逐个插入每个关键码,建立与集合K相对应的二叉排序树(又称二叉查找树)BST,若希望得到的BST高度最小,应选择下列哪种输入序列? ( )。

A.45,24,53,12,37,96,30

B.37,24,12,30,53,45,96

C.12,24,30,37,45,53,96

D.30,24,12,37,45,96,53


正确答案:B
解析:要使BST的高度最小,应把尽量把中间值作为树根节点。也就是说中间值先插入。在关键码集合K中,37是中间值,因此选项B可能是最小:再仔细观察发现B选项中每个子树的各节点的插入都是中间值,如37是中间值,24是30、24,12中的中间值,先插入:53是45、53、96的中间值先插入。从而保证了其高度最小。另外通过画各树的示意图也可知A的高度为4、B的高度为3、C的高度为7、D的高度为5。

第6题:

设二叉树中共有31个结点,其中的结点值互不相同。如果该二叉树的后序序列与中序序列相同,则该二叉树的深度为()。

A.31

B.16

C.17

D.5


正确答案:A

第7题:

对于同一组结点,由于建立二叉排序树时插入结点的先后次序不同,所构成的二叉排序树的形态及深度也不同,所以含有n个结点的二叉排序树不唯一。 ()

此题为判断题(对,错)。


正确答案:正确

第8题:

(4)有关键码值为 10,20,30,的三个结点,接所有可能的插入顺序去构造二叉排序树,能构造出

【4】 棵不同的二叉排序树。


正确答案:

(4)【答案】5 
【解析】3个节点可以构造以下5种二叉树:

第9题:

现有关键码值分别为5、10、15、20的4个结点,按所有可能的插入顺序去构造二叉树。这些二叉树排序中有________棵是最佳二叉排序树。

A.6

B.5

C.4

D.3


正确答案:C
解析:最佳二叉排序树在结构上的特点:除了最下面一层可以不排满外,其他各层都是充满的。4种分别为:

第10题:

阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树。 (1)若它的左子树非空,则左子树上所有结点的值均小于根结点的值。 (2)若它的右子树非空,则右子树上所有结点的值均大于根结点的值。 (3)左、右子树本身就是两棵二叉查找树。 二叉查找树是通过依次输入数据元素并把它们插入到二叉树的适当位置上构造起来的,具体的过程是:每读入一个元素,建立一个新结点,若二叉查找树非空,则将新结点的值与根结点的值相比较,如果小于根结点的值,则插入到左子树中,否则插入到右子树中;若二叉查找树为空,则新结点作为二叉查找树的根结点。 根据关键码序列{46,25,54,13,29,91}构造一个二叉查找树的过程如图4-1所示。设二叉查找树采用二叉链表存储,结点类型定义如下: typedef int KeyType; typedef struct BSTNode{ KeyType key; struct BSTNode *left,*right; }BSTNode,*BSTree; 图4-1(g)所示二叉查找树的二叉链表表示如图4-2所示。图4-2 函数int InsertBST(BSTree *rootptr,KeyType kword)功能是将关键码kword插入到由rootptr指示出根结点的二叉查找树中,若插入成功,函数返回1,否则返回0。

【C代码】 int lnsertBST(BSTree*rootptr,KeyType kword) /*在二叉查找树中插入一个键值为kword的结点,若插入成功返回1,否则返回0; *rootptr为二叉查找树根结点的指针 */ { BSTree p,father; (1) ; /*将father初始化为空指针*/ p=*rootptr; /*p指示二叉查找树的根节点*/ while(p&& (2) ){ /*在二叉查找树中查找键值kword的结点*/ father=p; if(kword<p->key) p=p->left; else p=p->right; } if( (3) )return 0; /*二叉查找树中已包含键值kword,插入失败*/ p=(BSTree)malloc( (4) ); /*创建新结点用来保存键值kword*/ If(!p)return 0; /*创建新结点失败*/ p->key=kword; p->left=NULL; p->right=NULL; If(!father) (5) =p; /*二叉查找树为空树时新结点作为树根插入*/ else if(kword<father->key) (6) ; /*作为左孩子结点插入*/ else (7) ; /*作右孩子结点插入*/ return 1; }/*InsertBST*/


正确答案:father=(void*)0 
keyword!=p->key
p
sizeof(BSTNode)
*rootptr
father->left=p
father->right=p 

更多相关问题