一:二叉树的广度遍历
广度遍历用队列思想;
队列:先进先出,队尾入队,队首出队
首先根节点入队
while(队列非空) {
队首节点出队;
队首节点的子节点入队;
}
广度遍历表面使树从上到下,从左到右遍历
优先按行遍历
二:二叉树的深度遍历
深度遍历用堆栈思想;
堆栈:先进后出,栈顶进,栈顶出
首先根节点入栈
while(堆栈非空){
栈顶出栈;
栈顶节点的子节点入栈;
}
深度遍历表面从左到右,从上到下遍历
优先向深处遍历
知识点:
树:
节点的度:这个节点的子节点数
树的度:一棵树中最大的度值
叶子节点:度为0的节点
度为d,高度为h的树,
节点最多有:Sigema(d × nd )+ 1
叶子节点:Sigema((d - 1)× nd)+ 1
二叉树:
高度h,总节点最大容量:2^h - 1
某一层节点数量:2^(i - 1)
编号t,左孩子:2 × t (从1开始计数)