//定义节点
typedef struct LinkNode{
BiTree data;
LinkNode *next;
}LinkNode;
typedef struct
{
LinkNode *front, *rear;
}LinkQueue;
//初始化队列
void InitQueue(LinkQueue &Q)
{
Q.front=Q.rear=new LinkNode;
Q.front->next=NULL;
}
//从队尾插入
void EnQueue(LinkQueue &Q, BiTree x)
{
LinkNode *s;
// s =(LinkNode*)malloc(sizeof(LinkNode));
s = new LinkNode;
s->data=x;
s->next=NULL;
Q.rear->next=s;
Q.rear=s;
}
//从队头读数
void DeQueue(LinkQueue &Q, BiTree &x)
{
LinkNode *p=Q.front->next;
x = p->data;
Q.front->next=p->next;
if(Q.front->next==NULL)
Q.rear=Q.front;
free(p);
}
bool QueueEmpty(LinkQueue Q)
{
if(Q.front==Q.rear)
return true;
else
return false;
}
网友评论