数据结构考研代码伪码总结
二叉树的递归遍历
1.前序遍历
void PerOrder(BiTree T){
BiTree p=T;
if(p){
visit(p);//访问节点并输出
PerOrder(p->lchild);//递归访问左子树
PerOrder(p->rchild);//递归访问右子树
}
}
2.中序遍历
void InOrder(BiTree T){
BiTree p=T;
if(p){
InOrder(p->lchild);//递归访问左子树
visit(p);//访问节点并输出
InOrder(p->rchild);//递归访问右子树
}
}
3.后序遍历
void PostOrder(BiTree T){
BiTree p=T;
if(p){
PostOrder(p->lchild);//递归访问左子树
PostOrder(p->rchild);//递归访问右子树
visit(p);//访问节点并输出
}
}
二叉树的非递归遍历
1.前序遍历
void preorder(BiTree T){
BiTree p=T;
InitStack(s);//初始化一个栈
while(p||!isEmpty(s)){
if(p){
//一路向左
visit(p);//访问根节点
push(s