n个结点(大小都不相同)的二叉排序树共有几种排法?

作者&投稿:肥有 (若有异议请与网页底部的电邮联系)
设二叉排序树中有n个结点,则在二叉排序树的平均查找长度为~

二楼正解
最坏情况是深度为N的单支树为(N+1)/2
最好的是形态均匀和折半查找一样大约为 LOG2 N
PS:若构造完成,例:
则平均查找长度为:(1×1+2×2+3×4+4×3)/10=2.9

假设在二叉排序树上被删结点为*p(指向结点的指针为p),其双亲结点为*f(结点指针为f),且不失一般性,可设*p是*f的左孩子。
下面分三种情况进行讨论:
(1)若*p结点为叶子结点,即PL和PR均为空树。由于删去叶子结点不破坏整棵树的结构,则只需修改其双亲结点的指针即可。
(2)若*p结点只有左子树PL或者只有右子树PR,此时只要令PL或PR直接成为其双亲结点*f的左子树即可。显然,作此修改也不破坏二叉排序树的特性。
(3)若*p结点的左子树和右子树均不空。图(b)可知,在删去*p结点之前,中序遍历该二叉树得到的序列为{…CLC…QLQSLSPPRF…},在删去*p之后,为保持其它元素之间的相对位置不变,可以有两种做法:其一是令*p的左子树为*f的左子树,而*p的右子树为*s的右子树,如图(c)所示;其二是令*p的直接前驱(或直接后继)替代*p,然后再从二叉排序树中删去它的直接前驱(或直接后继)。如图(d)所示,当以直接前驱*s替代*p时,由于*s只有左子树SL,则在删去*s之后,只要令SL为*s的双亲*q的右子树即可。

既然是二叉树又怎么会 大小都不相同。
如果只是二叉树的话可以使用深度优先遍历实现前序、中序、后序遍历。使用广度优先可以实现按层遍历
前序
preorder(node *root){
if (root == null) return;
visited(root); //1
preorder(root->left); //2
preorder(root->right);//3
}
中序、后序只是注释1、2、3行的顺序问题
中序时2、1、3,后序是2、3、1
按层遍历需要用到队列
queue q;
q.enqueue(root);
while(!q.isempty()){
root = q.front;
visit(root);
q.dequeue();
if (root->left != null) q.enqueue(root->left);
if (root->right != null) q.enqueue(root->right);
}

楼上显然把BST当成普通的二叉树了
应该是2*N-1种
比如1,2,3 3个结点,2做根结点只有一种情况,1和3做根结点都有两种情况,共5种
N个结点的情况可以用归纳法证明

推荐您看一看catalan数就明白了


具有三个结点的二叉树有几种形态 三个结点可构成几个不同形态的二叉树...
如果2*I<=n,则其左孩子(即左子树的根结点)的编号为2*i;若2*i>N,则无左孩子;如果2*I+1<=n,则其右孩子的结点编号为2*i+1;若2*i+1>N,则无右孩子。最后综述:通过以上关于具有三个结点的二叉树有几种形态 三个结点可构成几个不同形态的二叉树 内容介绍后,相信大家会对具有三...

完全二叉树中第5层上最少有多少个结点 ??最多有多少个结点??
最少1个结点,最多有16个结点。一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同。如果遇到一个结点,左孩子不为空,右孩子为空;或者左右孩子都为空;则该节点之后的队列中的...

...单链表L(L中元素值各不相同)的最大值所对应的结点,并返回该值_百度...
voidRemove(LinkListL,DataTypex)\/\/设L是带头结点的单链表{Node*p=L,*q;while(p->next!=NULL&&p->next->data!=x)p=p->next;if(p->next!=NULL){q=p->next;p->next=q->next;deleteq;}}

这是数据结构中的一个问题:写一个算法将单链表中重复的结点删除...
include <iostream.h> include <stdlib.h> struct nlist{ int *list;int size;int maxsize;};\/\/初始化 void initlist(nlist &l){ l.maxsize=20;l.list=new int[l.maxsize];l.size=0;} \/\/清空 void clearlist(nlist &l){ if(l.list!=NULL) { delete []l.list;l.list=NULL;} l...

数据结构问题
N

二叉树和树的区别到底是什么,例如用三个结点画出二叉树和树的不同结构...
二叉树是指一个树的父节点最多只有两个子节点构成的树,树是不限制子节点的个数的。二叉树是树的一种特例,是树的子集。三个节点是无法表示出二叉树和树的区别的,需要三个以上的节点。二叉树的表示如下图。树的表示如下图。

一个组合结点是几个约束
四个。根据结构力学绪论资料显示,结点可以简化为以下三种类型,分别是组合结点、刚结点、铰结点;刚结点3个约束,铰结点2个约束,组合结点4个约束。结点是空间格子中的点,它们代表晶体构造中的相当点。在实际的晶体构造中,结点可以为相同的离子、原子或分子所占据,但结点本身不代表任何质点,它们为只具...

用三个结点a,b,c可以构造多少种不同的二叉树
a是根节点,a的右孩子为b,b的左孩子为c。a是根节点,a的左孩子为b,b的左孩子为c。a是根节点,a的左孩子为b,b的右孩子为c。a是根节点,a的左孩子为b,a的右孩子为c。二叉树通常作为数据结构应用,典型用法是对节点定义一个标记函数,将一些值与每个节点相关系。这样标记的二叉树就可以...

一个有n个结点的无向图最多有多少条边?
每个顶点相关联的边最多有n-1条,因此n个顶点的无向图最多有n*(n-1)条边 可以这样理解当第一个结点指向其他n-1个结点时第二个结点只能指向其余n-2个结点而不能指向第一个否则成环。可以从拓扑排序角度理解为何最大,假设图用邻接矩阵存储同时编号成三角矩阵(有向无环图可以拓扑排序肯定可以...

某二叉树中共有140个结点,其中有40个度为1的结点,则该二叉树存在吗...
对一棵具有n个结点的二叉树按层序排号,如果编号为i的结点与同样深度的满二叉树编号为i结点在二叉树中位置完全相同,就是完全二叉树。满二叉树必须是完全二叉树,反过来不一定成立。在非空二叉树的i层上,至多有2i-1个节点(i>=1)。在深度为K的二叉树上最多有2k-1个结点(k>=1)。

大同区17011284420: 由N个节点可以构造出几个不同的二叉排序树 -
阮命胃舒: 你的问题实际上就是N结点能构成多少种二叉树(一般二叉排序树的可能形态数和二叉树一样).答案是C(2n, n)/(n+1)种.例如:4个结点有14种望采纳

大同区17011284420: 设二叉排序树中有n个结点,则在二叉排序树的平均查找长度为 -
阮命胃舒:[答案] 二楼正解 最坏情况是深度为N的单支树为(N+1)/2 最好的是形态均匀和折半查找一样大约为 LOG2 N PS:若构造完成,例: 则平均查找长度为:(1*1+2*2+3*4+4*3)/10=2.9

大同区17011284420: 构造一颗具有n个结点的二叉排序树,在最理想的情况下的深度为 -
阮命胃舒: 最低高度就是n个结点的完全二叉树的高度:下取整(log2n) + 1

大同区17011284420: 编写算法:已知二叉排序树按二叉链表形式存储,树中结点各不相同,欲得到一个由小到大的结点值递增序列 -
阮命胃舒: 首先看下二叉排序树的定义:二叉排序树(Binary Sort Tree)又称二叉查找树,亦称二叉搜索树. 它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空...

大同区17011284420: 急:在具有n个结点的二叉树中,如果各结点值互不相同,但前序遍历序列与中序遍序列相同 -
阮命胃舒: 前序遍历是先根再左子树最后右子树 中序遍历是先左子树再根最后右子树 一颗非空树中肯定有根,那么要保持前序和中序一致的话,去掉左子树,前序和中序的遍历便相同了,都是先根然后右子树.所以,该题n个结点的二叉树,深度为n 二叉树形式如下(3个结点,深度为3): o \ o \ o

大同区17011284420: 请问N个不同结点可以构成多少个不同的二叉树? -
阮命胃舒: 根据条件来判断,首先这N个节点能构成二叉树 其次,这N个节点各不相同 那么,第一个节点可以有N种选择,第二个节点有N-1种选择 所以一共可以构成的二叉树应该是A(N, N)

大同区17011284420: 请问怎么用结点来计算二叉排序树的个数?比如给四个结点abcd,应该怎么计算呢? -
阮命胃舒:[答案] 对于任一给定的节点序列,只有一个二叉排序树 因为二叉排序树总是以第一个节点为根节点,将以后的节点按顺序添加到树里面的 如果非要计算有多少个不同的二叉排序树,那么只需计算给定的节点有多少种排列就可以了 如果给定n个点,并且值...

大同区17011284420: 二叉排序树删除结点后所得的二叉树唯不唯一? -
阮命胃舒: 由n个结点组成的二叉排序树是不唯一的.而二叉排序树删除一个结点后,就是要把该节点的子孙结点重组成一颗二叉排序树,这自然也是不唯一的咯.

大同区17011284420: 若构造一棵具有n个结点的二叉排序树,最坏的情况下其深度不超过多少 -
阮命胃舒: n

大同区17011284420: n个结点的完全二叉树顺序存储,叶结点和非叶结点的个数、范围? -
阮命胃舒: n个节点的完全二叉树,则根据公式2^N-1=n 算出N, 即层数.叶节点数:2^(N-1),非叶子节点数:2^(N-1)-1 范围就不用说了吧,非叶子:1----2^(N-1)-1 叶子:2^(N-1)---2^N-1 存储,可以用链表,也可以用数组.链表,每个节点一个左子节点,一个右子节点.数组,就按照顺序存储,并且建立两个指针,指针的关系是父节点与左子节点的关系...程序,书上有吧、、、、、

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网