二叉树的遍历:
前序:根 左 右
中序:左 根 右
后序:左 右 根
注意:前中后由根节点决定,并且左右子树的次序不能改变
注意:根据前序+中序 或者 后序+中序 可以还原出一棵树,但是前序+后序是无法还原的
层序遍历:从上到下,从左到右来遍历一棵树,必须配合队列使用
前序
// 前序
void _dlr_show(BinTree* tree,size_t index)
{
// index 是节点的编号,index-1是节点的下标
if(index-1 >= tree->cal || EMPTY == tree->arr[index-1])
return;
printf("%c ",tree->arr[index-1]);
_dlr_show(tree,index*2);
_dlr_show(tree,index*2+1);
}
// 前序
void dlr_show(BinTree* tree)
{