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;
        }
    }
}