C语言的:树与二叉树

结点:树中的一个独立单元。
结点的度:结点拥有的子树数称为结点的度。
树的度:树内各结点度的最大值。
叶子:度为 0的结点或终端结点,非终端结点:度不为 0 的结点。双亲和孩子:结点的子树的根称为该结点的(孩子,相应地,该结点称为孩子的双亲。层次:结点的层次从根开始定义根为第一层,根的孩子为第二层以此类推。

基本性质:

性质一:树中所有结点数等于所有结点的度数之和加1。

性质二:对于度为 m 的树,第i层上最多有 mi-1 个结点。

性质三:对于高度为 h,度为 m 的树,最多有(mh-1)/(m-1)个结点。

二叉树

二叉树:n(n≥0)个结点所构成的集合,它或为空树(n=0),或为非空树。

对于非空树 T:


(1)有且仅有一个 称为根的结点
(2)除根结点以外的其余结点分为两个互不相交的子集T 和 T2,分别称为 丅的左子树和右子树,且T和T2本身又都是二叉树。
(3)二叉树每个结点至多只有两棵子树。
(4)二叉树的子树有左右之分,其次序不能任意颠倒。

二叉树的性质:

性质一:二叉树的第i层最多有2-1(i>1)个结点。

性质二:深度为k的二叉树最多有2k-1(k>1)个结点。

性质三:对于任何非空的二叉树T,如果叶子结点的个数为n,而度为2的结点数为n2,则no=n2+1

满二叉树:

深度为k且含有 2k-1 个结点的二叉树所有的叶子结点只能出现在最后一层
对于同样深度的二叉树,满二叉树的结点个数最多叶子结点的数量也是最多的。
如果对满二叉树进行编号,根结点从1开始,从上到下从左到右,对于编号为i的结点,若存在左孩子,则左孩子的编号为2ì,右孩子为2i+1。

完全二叉树:

深度为k的、有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称之为完全二叉树。

性质:

叶子结点只可能在层次最大的两层上出现;
对任一结点,若其右分支下的子孙的最大层次为i,则其左分支下的子孙的最大层次必为i或i+1。

前序遍历

void preOrder( BiTree root)

/*先序遍历二叉树,root为指向二叉树(或某一子树)根结点的指针*/

{

if( root!=NULL)

{

Visit( root->data);                                                     访问根结点

PreOrder(root->Lchild);                                         先序遍历左子树

PreOrder( root->RChild);                                         先序遍历右子树

}

}

中序遍历

void InOrder( BiTree root )

/*中序遍历二叉树,root为指向二叉树(或某一子树)根结点的指针*/

{

if( root!= NULL){

InOrder( root->LChild );                                  中序遍历左子树

Visit( root->data);                                            访问根结点

InOrder(root->RChild);                                   中序遍历右子树

}

}

后序遍历

void PostOrder( BiTree root )

/*后序遍历二叉树,root为指向二叉树(或某一子树)根结点的指针*/

{

if( root!=NULL)

{

PostOrder(root->LChild) ;                                               后序遍历左子树

PostOrder(root->RChild);                                                  后序遍历右子树

Visit( root->data);                                                                访问根结点

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值