链式队列

2019-10-09  本文已影响0人  jas_go
//定义节点
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;
}

上一篇 下一篇

猜你喜欢

热点阅读