二叉树图示 二叉树详解
大家好,我是城乡经济网的萧声来回答以上问题。很多人还不知道二叉树图和详细解释。现在让我们来看看!
树是一种数据结构,由n (n >)组成;=1)有限个节点形成一个具有层次关系的集合。二叉树是一种每个节点最多有两个子树的树结构。二叉树是最简单的树结构,树结构是有层次的,对应的是一个线性结构。
二叉树分类:
在二叉树中,只有最下面两层的节点的度可以小于2,最底层的叶节点集中在左边的几个位置。这样的二叉树叫做完全二叉树。
高度为h,由2h-1个节点组成的二叉树称为全二叉树。
二叉树的性质
属性1:二叉树的I层上的最大节点数为2i-1(I >;=1)
性质2:深度为k的二叉树最多有2k-1个节点(k >;=1)
性质3:包含n个节点的二叉树的高度至少是(log2n) 1。
性质4:在任一二叉树中,若终端节点数为n0,度为2的节点数为n2,则n0 = N2 ^ 1。
二叉树排序:
前序遍历
1.访问根节点
2.遍历根节点的左子树。
3.遍历根节点的右子树。
有序遍历
1.中间顺序遍历根节点的左子树。
2.访问根节点
3.中间顺序遍历根节点的右子树。
后序遍历
1.根节点的左子树的后序遍历
2.根节点右子树的后序遍历
3.访问根节点
二叉排序树也被称为二叉查找树或二叉查找树。一开始是二叉树,必须满足以下条件:
1)如果左子树不是空,则左子树上所有节点的值都小于其根节点的值;
2)如果右子树不是空,则右子树上所有节点的值都大于其根节点的值。
3)左右子树也是二叉排序树。
4)没有键值相等的节点。
实现:
在实际使用中,会根据链表、有序数组等数据结构的不同优势进行选择。
有序阵列的优势在于二分搜索法;
链表的优势在于数据项的插入和删除;
结构:
二叉树需要定义指向左右子节点的指针,以及存储的数据;
类型BinaryTree结构{
数据接口{}
Lchild *BinaryTree
Rchild *BinaryTree
}
Go示例:
//二叉树二叉树
打包算法
导入(
"反思& quot
)
//二叉树定义
类型BinaryTree结构{
数据接口{}
Lchild *BinaryTree
Rchild *BinaryTree
}
//构造方法
func NewBinaryTree(数据接口{}) *BinaryTree {
返回& ampBinaryTree{Data: data}
}
//优先遍历
func(Bt * binary tree)PreOrder()[]接口{} {
t := bt
stack := NewStack(reflect。类型(bt))
res := make([]interface{},0)
为了t!= nil ||!堆栈。Empty() {
为了t!=零{
res = append(res,t.Data)
堆栈。推(t)
t = t.Lchild
}
如果!堆栈。Empty() {
v,_ :=栈。流行()
t = v.(*BinaryTree)
t = t.Rchild
}
}
返回资源
}
//中间顺序遍历
func(Bt * binary tree)in order()[]interface { } {
t := bt
stack := NewStack(reflect。类型(bt))
res := make([]interface{},0)
为了t!= nil ||!堆栈。Empty() {
为了t!=零{
堆栈。推(t)
t = t.Lchild
}
如果!堆栈。Empty() {
v,_ :=栈。流行()
t = v.(*BinaryTree)
res = append(res,t.Data)
t = t.Rchild
}
}
返回资源
}
//后续遍历
func(Bt * binary tree)post order()[]接口{} {
t := bt
stack := NewStack(reflect。类型(bt))
s := NewStack(反射。TypeOf(true))
res := make([]interface{},0)
为了t!= nil ||!堆栈。Empty() {
为了t!=零{
堆栈。推(t)
南推(假)
t = t.Lchild
}
对于flag,_:= s . Top();!堆栈。empty()& amp;& amp旗帜。(bool);{
南流行()
v,_ :=栈。流行()
res = append(res,v.(*BinaryTree)。数据)
flag,_ = s.Top()
}
如果!堆栈。Empty() {
南流行()
南推送(真)
v,_ :=栈。顶部()
t = v.(*BinaryTree)
t = t.Rchild
}
}
返回资源
}
更多信息请关注日常编程,天天向上。
本文就在这里给你解释一下,希望能帮到你。
本文由发布,不代表多多百科立场,转载联系作者并注明出处:http://www.tatabe.com/zhonghebaike/105830.html