Q:二叉树
平衡二叉树:任意节点左子树与右子树高度差不为1
二叉树的遍历方式:前序遍历,中序遍历,后序遍历
二叉树的最大节点数:在深度为K的二叉树上最多有2k-1个结点;
对于任何一棵非空的二叉树,如果叶节点个数为n0,度数为2的节点个数为n2,则有: n0 = n2 + 1;
在非空二叉树的i层上,至多有2i-1个节点;
二叉树插入删除的时间复杂度:平均复杂度是O(log N)
二叉树的优点:有序数组的优势在于二分查找,链表的优势在于数据项的插入和数据项的删除。但是在有序数组中插入数据就会很慢,同样在链表中查找数据项效率就很低。综合以上情况,二叉树可以利用链表和有序数组的优势,同时可以合并有序数组和链表的优势,二叉树也是一种常用的数据结构。
树的度是树中结点度的最大值。
只有一个结点的二叉树,结点的度为零,故二叉树的度为0.
二叉树的左右子树不能随意交换。
完全二叉树(Complete Binary Tree):若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
完美二叉树(满二叉树Perfect Binary Tree):一颗深度为k且有2^k-1个结点的二叉树称为满二叉树。 除叶子结点外的所有结点均有两个子结点。节点数达到最大值。所有叶子结点必须在同一层上。
完满二叉树(Full Binary Tree):所有非叶子结点的度都是2。