一.二叉树的定义
——因为每个节点最多有两个子树,所以二叉树中不存在精度大于2的节点。
——左边的子树和右边的子树有顺序,不能颠倒顺序。
——即使有树的节点只有一棵子树,也要区分是左边的子树还是右边的子树。 (像人的左右手一样,左手拿碗,右手拿筷子) )。
二叉树的五种基本形态空二叉树只有一个根节点根节点,只有左子根节点,只有右子根节点,有左子树和右子树
二叉树是用来区分左右的,所以有三个节点的二叉树变成五种形状。
三、二叉树的性质是二叉树的第I层最多有2^(n-1 )个节点。 深度为k的二叉树最多拥有2^k-1个节点。 【K=1】对于任何二叉树t,设其终端节点数为n0,度为2的节点数为n2,则n0=n2 1具有n个节点的完全二叉树的深度为[log2n] 1四,二叉树的顺序记忆结构二叉树是特殊的树,由于其特殊性
从图中可以看出,完全二叉树的优越性是被严格定义的,所以可以直接在数组上表达逻辑结构。
当然,在一般二叉树中,层序编号并不反映逻辑关系,但可以修改为完全二叉树编号,用“^”代替不存在的节点。
但是,考虑到极端的情况,如果是右斜的树,那会怎么样呢?
造成了空间的浪费!
五、如果二叉树的连锁记忆结构顺序记忆方式的适用性不强,我们就要考虑连锁记忆结构。 二叉树记忆也按照国际惯例采用链式记忆结构。
二叉树的每个节点最多有两个孩子,所以与数据域; 两个指针字段是比较自然的想法,这样的链表称为双链表。
typedefstructbitnode { elemtype data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree;