链表队列

来源:互联网 发布:网络环境异常怎么修复 编辑:程序博客网 时间:2024/05/16 11:35

#include<stdio.h>
#include<stdlib.h>
typedef int QElemType;
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));
    if(!Q.front)
    {
        printf("Malloc error!");
        exit(1);
    }
}
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;
}
void DelQueue(LinkQueue &Q,QElemType &e)
{
    QueuePtr p;
    p=(QueuePtr)malloc(sizeof(QNode));
    if(Q.rear==Q.front)
    {
        printf("Queue is empty!");
        exit(1);
    }
    p=Q.front->next;
    e=p->data;
    Q.front->next=p->next;
    if(Q.rear==p)
        Q.rear=Q.front;
}

int main()
{
    LinkQueue Q1;
    InitQueue(Q1);
    int a[4]={0,2,3,4};
    int i;
    for(i=0;i<4;i++)
    {
        EnQueue(Q1,a[i]);
    }
    int e;
    for(i=0;i<4;i++)
    {
        DelQueue(Q1,e);
        printf("%d ",e);
    }
    printf("/n");
    return 0;
}

原创粉丝点击