❤️ 先序遍历❤️
//先序遍历 void PreOrder(BiTree T){ if(T!=null){ visit(T);//访问根结点 PreOrder(T->lchild);//遍历左子树 PreOrder(T->rchild);//遍历右子树 } }
❤️ 中序遍历❤️
//中序遍历 void PreOrder(BiTree T){ if(T!=null){ PreOrder(T->lchild);//遍历左子树 visit(T);//访问根结点 PreOrder(T->rchild);//遍历右子树 } }
❤️ 后序遍历❤️
//中序遍历 void PreOrder(BiTree T){ if(T!=null){ PreOrder(T->lchild);//遍历左子树 PreOrder(T->rchild);//遍历右子树 visit(T);//访问根结点 } }
❤️ 层序遍历❤️
//二叉树的结点 typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; //链式队列的存储 typedef struct LinkNode{ BiTNode *data; struct LinkNode *next; }LinkNode; //层序遍历 void LevelOrder(BiTree T){ LinkQueue Q; 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);//右孩子入队 } }