树的层次遍历

    科技2026-01-05  10

    void Level(BTNode *p) {     int front,rear;     rear=front=0;     BTNode *que[maxSize]; //上边三句定义了一个循环队列,用来记录将要访问的层次上的结点     BTNode *q;     if(p!=NULL)     {         rear=(rear+1)%maxSize;         que[rear]=p;             //这两句叫树的根节点入队         while(rear!=front)       //队列不空时进行循环         {             front=(front+1)%maxSize;             q=que[front];        //队头结点出队列             cout<<q-data;        //访问队头结点             if(q->lchild!=NULL)  //左子树非空时,左子树根节点入队             {                 rear=(rear+1)%maxSize;                 que[rear]=q->lchild;             }             if(q->rchild!=NULL)   //右子树非空时,右子树根节点入队             {                 rear=(rear+1)%maxSize;                 que[rear]=q->rchild;             }         }          } }

    Processed: 0.025, SQL: 10