?? level.cpp
字號:
#define qelemtype bitree
typedef struct qnode
{
qelemtype data;
struct qnode * next;
}qnode,* queueptr;
typedef struct
{
queueptr front;
queueptr rear;
}linkqueue;
void initqueue(linkqueue &Q)
{
Q.front=Q.rear=(queueptr)malloc(sizeof(qnode));
Q.front->next=NULL;
}
int queueempty(linkqueue &Q)
{
if(Q.front==Q.rear) return 1;
else return 0;
}
void enqueue(linkqueue &Q,qelemtype e)
{
queueptr p;
p=(queueptr)malloc(sizeof(qnode));
p->data=e;p->next=NULL;
Q.rear->next=p;
Q.rear=p;
}
int dequeue(linkqueue &Q,qelemtype &e)
{
queueptr p;
if(queueempty(Q)) return 0;
p=Q.front->next;
e=p->data;
Q.front->next=p->next;
if(Q.rear==p) Q.rear=Q.front;
free(p);
return 1;
}
void leordertraverse(bitree &T,void (* visit)(elemtype))
{
linkqueue Q;
initqueue(Q);
bitree L;
if(T) enqueue(Q,T);
while(!queueempty(Q))
{
dequeue(Q,L);
visit(L->data);
if(L->lchild) enqueue(Q,L->lchild);
if(L->rchild) enqueue(Q,L->rchild);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -