数据结构-树的基础代码

来源:互联网 发布:网络视频节目许可证 编辑:程序博客网 时间:2024/06/04 17:46

1.树的先序遍历-递归

void PreOrder(BiTree T){if(T!=NULL){visit(T);PreOrder(T->lchild);PreOrder(T->rchild);}}


2.树的中序遍历-递归

void InOrder(BiTree T){if(T!=NULL){InOrder(T->lchild);visit(T);InOrder(T->rchild);}}



3.树的后序遍历-递归

void PostOrder(BiTree T){if(T!=NULL){PostOrder(T->lchild);PostOrder(T->rchild);visit(T);}}


4.树的层次遍历

void LevelOrder(BiTree T){InitQueue(Q);BiTree 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);}}


5.中序遍历-非递归

void InOrder2(BiTree T){InitStack(S);BiTree p=T;//p是遍历指针while(p||!IsEmpty(S)){//栈不空或p不空时循环if(p){Push(S,p);//每遇到非空二叉树先左走p=p->lchild;}else{Pop(S,p);visit(p);p=p->rchild;}}}



原创粉丝点击