while(队列非空){出队;入队}
二叉树的存储结构
#define MaxSize 100
typedef char ElemType;
struct BTNode {
ElemType data;
struct BTNode *lchild;
struct BTNode *rchild;
};
二叉树的前序遍历
void PreOrder(BTNode *b) {
if(b!=NULL) {
cout<<b->data<<" ";
PreOrder(b->lchild);
PreOrder(b->rchild);
}
}
二叉树的中序遍历
void InOrder(BTNode *b) {
if(b!=NULL) {
InOrder(b->lchild);
cout<<b->data<<" ";
InOrder(b->rchild);
}
}
二叉树的后序遍历
void PostOrder(BTNode *b) {
if(b!=NULL) {
PostOrder(b->lchild);
PostOrder(b->rchild);
cout<<b->data<<" ";
}
}
二叉树的层次遍历
void LevelOrder(BTNode *b) {
BTNode *p;
BTNode *qu[MaxSize];
int front,rear;
front=rear=0;
rear++;
qu[rear]=b;
while(front!=rear) {
front=(front+1)%MaxSize;
p=qu[front];
cout<<p->data<<" ";
if(p->lchild!=NULL) {
rear=(rear+1)%MaxSize;
qu[rear]=p->lchild;
}
if(p->rchild!=NULL) {
rear=(rear+1)%MaxSize;
qu[rear]=p->rchild;
}
}
}
暂无评论