树的四种遍历方式,结合具体例子代码很容易理解
先序遍历
中序遍历
后序遍历
层次遍历
伪代码如下
先序遍历
void PreOrder(BiTree T){
if(T!=NULL){
visit(T);
PreOrder(T->lchild);
PreOrder(T->rchile);
}
}
中序遍历
void PreOrder(BiTree T){
if(T!=NULL){
PreOrder(T->lchild);
visit(T);
PreOrder(T->rchile);
}
}
后序遍历
void PreOrder(BiTree T){
if(T!=NULL){
PreOrder(T->lchild);
PreOrder(T->rchile);
visit(T);
}
}
void LevelOrder(BiTree T){
InitQueue(Q); //初始化队列
BiTree p; //辅助变量p
EnQueue(Q,T); //根结点入队
while(!IsEmpty(Q)){ //队列不空,循环!!很重要,这句话
DeQueue(Q,p) //队头元素出队
visit(p);
if(p->lchild!=null){
EnQueue(Q,p->lchild);
}
if(p->rchild!=null){
EnQueue(Q,p->rchild);
}
}
}
网友评论