数据结构笔记(6)

树与二叉树
1.树在这里插入图片描述
在这里插入图片描述
2.二叉树
在这里插入图片描述
在这里插入图片描述
二叉树的性质:

  1. 在非空二叉树中,第i层的结点总数不超过2i-1, i>=1;

  2. 深度为h的二叉树最多有2h-1个结点(h>=1),最少有h个结点;

  3. 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;

  4. 具有n个结点的完全二叉树的深度为log2(n+1);

5)有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:

若I为结点编号则 如果I>1,则其父结点的编号为I/2;

如果2I<=N,则其左儿子(即左子树的根结点)的编号为2I;若2I>N,则无左儿子;

如果2I+1<=N,则其右儿子的结点编号为2I+1;若2I+1>N,则无右儿子。

6)给定N个节点,能构成h(N)种不同的二叉树,其中h(N)为卡特兰数的第N项,h(n)=C(2*n, n)/(n+1)。

7)设有i个枝点,I为所有枝点的道路长度总和,J为叶的道路长度总和J=I+2i。
3.树的实现
template
class BiTree
{
public:
Bitree(){root=Creat(root);}
~Bitree(){Release(root);}
void PreOrder(){PreOrder(root);}
void InOrder(){InOrder(root);}
void PostOrder(){PostOrder(root);}
void LeverOrder();
private:
BiNode*root;
BiNode*Creat(BiNode*bt);
void Release(BiNode*bt);
void PreOrder(BiNode*bt);
void InOrder(BiNode*bt);
void PostOrder(BiNode*bt);
};
4.二叉树中的遍历
在这里插入图片描述
5.二叉查找树
二叉查找树定义:又称为是二叉排序树(Binary Sort Tree)或二叉搜索树。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:

  1. 若左子树不空,则左子树上所有结点的值均小于它的根结点的值;

  2. 若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;

  3. 左、右子树也分别为二叉排序树;

  4. 没有键值相等的节点。

二叉查找树的性质:对二叉查找树进行中序遍历,即可得到有序的数列。
6.二叉树逻辑顺序
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值