📄 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 + -