深度优先遍历
先序遍历
递归算法
void PreOrder(BiTree T){
if(T!= NULL){
visit(T);
PreOrder(T -> lchild);
PreOrder(T -> rchild);
}
}
非递归算法
中序遍历
递归算法
void MidOrder(BiTree T){
IF(T != NULL){
InOrder(T -> lchild);
read(T);
InOrder(T -> rchild);
}
}
非递归算法
后序遍历
递归算法
void RearOrder(BiTree T){
if(T != NULL){
RearOrder(t -> lchild);
RearOrder(t -> rchild);
read(T);
}
}
非递归算法
广度优先遍历
层次遍历
typedef struct LNode{
dataType data;
struct LNode *next;
}LNode;
typedef struct LinkQueue{
LNode *front,*rear;
}LinkQueue;
void LevelOrder(BiTree T){
LinkQueue Q;
}