Question:假设二叉树采用二叉链表存储结构,设计一个非递归算法求二叉树的高度。
Analysis:
1.用层次遍历来获得二叉树的高度;
2.对二叉树进行层次遍历,需要借助队列;
3.每次遍历到该层的最右边的结点时,level+1;
4.该算法的关键时,如何知道当前的结点是不是该层最后一个结点(last ==rear);
Code:
//二叉链表的结构
typedef struct BiTNode{
ElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree