《数据结构》二叉树与树

时间:2021-10-20 17:30:52

1{树是一种简单的非线性数据结构,所以它的元素之间具有明显的层次关系;

 每个节点都有一个前件,这个前件称为父节点;

没有前件的节点只有一个而且称为跟节点,简称跟;

每一个节点都可以有很多的节点,这些节点称为此节点的子节点;

没有后件的节点称为叶子节点;

一个节点拥有的的后件的个数称为此节点的度;

所有节点中它的度最大的称为树的度;

树的最大层次称为树的深度;

}

2{二叉树的特征:

非空的二叉树只有一个跟节点;

每颗节点最多有两个子树,称为左子树和右子树;

二叉树的度可以为0,1,2.

}

3:{

二叉树的性质:

1:在二叉树的第k层上最多有2k-1个节点(比如第二层的时候就有3个节点);

2:深度为m的二叉树最多有2m-1个节点。

3:在任何二叉树中度为0的节点总比度为2的节点多一个。

4:在具有N个节点的二叉树中他的(层数)深度为【log2n】+1,其取log2n得整数部分;

}

4{满二叉树的概念:

除了第一层以外其余的各层都是具有2个节点;

完全二叉树指的是除了最后一层外其余的每一层的节点都达到了最大层数,其最后一层的右边的节点缺少若干个

特性:

具有n个节点的完全二叉树具有的深度为log2n+1;

}

5{

设完全二叉树共有n个节点,如果从跟节点开始算,按层序(从左到右)用自然数1,2,3,4,。。。给节点编号(k=1,2,3,n)有以下特性:

1:如果K=1,则该节点为跟节点,他没有父节点。如果k>1,则它的父节点是INT(N/2)。

2:若2k<=n;则编号为k的左节点编号为2k,负责该节点为无子节点。

3:2k+1<=n;则该编号为K 的节点的右子节点编号为2k+1;否则该节点的无右子节点。

}

6{二叉树的存储结构

1:一般都是采用链式存储结构的

2:根据二叉树的性质,可以为满二叉树和完全二叉树来进行顺序存储;

}

7{二叉树的遍历

1:不重复的情况下来访问二叉树的所有节点。}

前序遍历:若返回二叉树为空则返回结束,否则:

    。访问跟节点;

    。访问左子节点;

    。访问右子节点;

中序遍历:若返回二叉树为空则返回结束,否则:

    。中序遍历左子树;

    。访问跟节点;

    。中序遍历后右子数;

后序遍历:若返回二叉数为空则返回结束,否则:

    。后续遍历左子树;

    。后续遍历右子树;

    。访问跟节点;