C语言 数据结构 树、二叉树

1、二叉树简介:二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。

相关知识:

树的深度:树中最大的结点层。

结点的度:结点子树的个数。

树的度: 树中最大的结点度。

叶子结点:也叫终端结点,是度为 0 的结点;

分枝结点:度不为0的结点;

满二叉树:除了叶子节点外,为一个节点都有左右子树的二叉树,每一层都满的二叉树。

完全二叉树:树中只有最后一层有空缺且从右向左连续空缺的二叉树。

平衡二叉树:又称AVL树,数中的每个节点左右子树高度差最多不想差1。

把一棵完全二叉树从上到下,从左到右依次编号,其中编号为i的点(1<i<n),若满足2i<n则该节点的左子树为2i,右子树为2i+1.

2、二叉树性质:

(1) 在非空二叉树中,第i层的结点总数不超过{\color{Red} 2^{i-1}},i≥1。

(2) 深度为h的二叉树最多有{\color{Red} 2^{h-1}}个结点(h>=1),最少有{\color{Red} h}个结点。

(3) 对于任意一棵二叉树,如果其叶结点数为N_{0},而度数为2的结点总数为N_{2},则{\color{Red} N_{0}=N_{2}+1}

(4) 具有n个结点的完全二叉树的深度为{\color{Red} [log_{2}n]+1}

(5)把一棵完全二叉树从上到下,从左到右依次编号,其中编号为i的点(1<i<n),若满足2i<n则该节点的左子树为{\color{Red} 2i},右子树为{\color{Red} 2i+1}

3、二叉树的声名与创建:递归建树。

typedef struct binarytree
{   
	char nValue;
    struct binarytree *pleft;
    struct binarytree *pright;
}bitree;


void CreateBiTree(binarytree **pTree)
{
    char nNum;
    scanf("%c",&nNum);

    if(nNum == '0')return;

	//根
	*pTree = (binarytree*)malloc(sizeof(binarytree));
	(*pTree)->nValue = nNum;
	(*pTree)->pleft = NULL;
	(*pTree)->pright = NULL;

    //左
    CreateBiTree(&((*pTree)->pleft));

    //右
    CreateBiTree(&((*pTree)->pright));
}

4、二叉树的遍历:

(1)先序遍历:首先访问根,再先序遍历左子树,最后先序遍历右子树。(根左右)

void PreorderTraversal(binarytree *pTree)
{
    if(pTree == NULL)return;

    //根
    printf("%d ",pTree->nValue);

    //左
    PreorderTraversal(pTree->pleft);

    //右
    PreorderTraversal(pTree->pright);
}

(2)中序遍历:首先中序遍历左子树,再访问根,最后中序遍历右子树。(左右根)

void InorderTraversal(binarytree *pTree)
{
    if(pTree == NULL)return;

    //左
    InorderTraversal(pTree->pleft);
    //根
    printf("%d ",pTree->nValue);
    //右
    InorderTraversal(pTree->pright);
}

(3)后序遍历:首先后序遍历左子树,再后序遍历右子树,最后访问根。(左右根)

void LastorderTraversal(binarytree *pTree)
{
    if(pTree == NULL)return;

    //左
    LastorderTraversal(pTree->pleft);
    //右
    LastorderTraversal(pTree->pright);
    //根
    printf("%d ",pTree->nValue);
}

(4)层序遍历:即按照层次访问,先访问根,访问左右儿子,再访问儿子的儿子。

二叉树遍历示例:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章