一、定义:在计算机科学中,二叉树是每个结点最多有两个子树的结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)
(1)结点:一棵的深度为K,且结点为2^k-1的二叉树,称为满二叉树(每一层的结点都是最大结点数)。
(2) 完全二叉树:至少有2^k-1个子节点,至多有(2^k)-1个结点
二、类型:
1、完全二叉树:除底层,其余层结点都达到最大个数,且底层有叶子结点,且叶子结点都是从左到右依次排序
2、满二叉树:除了叶结点外,其余结点都有左右子叶结点且叶子结点都处在最底层的二叉树
3、平衡二叉树:平衡二叉树又被称为AVL数,它是一个空树或者它的左右子树的高度差的绝对值不等于1,并且左右子树都是一颗平衡二叉树
三、存储结构:
1、顺序存储方式
typenode=record
data:datatype
l,r:integer
end;
vartr:array[1..n]ofnode
2、链表存储方式
typebtree=^node;
node=record
data:datatype;
lchild,rchild:btree
end;
四、二叉树遍历
定义:遍历是对树的一种最基本运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次。由于二叉树是非线性结构,因此,树的遍历实质上是将二叉树的各个结点转换成为一个线性序列来表示:DLR(先根次序遍历),LDR(中跟次序遍历),LRD(后跟次序遍历)、层次遍历
百度百科链接:https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%A0%91/1602879?fr=aladdin