C语言的队列的初始化和先进先出的简洁程序

#include
#include
#include


typedef struct node{
    
    int data;
    struct node *next; 
 }queue;


 typedef struct pointer
 {
  queue *front;
  queue *rear;
 
 }qpointer;                                                         /* 定义队列链表的头和尾,头和尾都是指针,用来指向向队列添加的节点*/


void QueueInit(qpointer *qp){
    queue *que;
    int i=0;
    que=(queue*)malloc(sizeof(queue));
    que->data=i;
    que->next=NULL;
    qp->front=que;
    qp->rear=que;


}


int QueuePush(qpointer *qp,int element){


queue *que;
    que=(queue*)malloc(sizeof(queue));
    que->data=element;
    qp->rear->next=que;                                     /*将元素插到尾部*/
    qp->rear=que;                                               /*队列尾部指针指向新增节点*/
    que->next=NULL;                                         /*新增节点的next指针指向空*/


}
int QueuePop(qpointer *qp){
    queue *que=NULL;
    que=qp->front->next;                                   /*指针que指向头节点的后一节点,既要出队的节点*/
    qp->front->next=que->next;                         /*讲头节点中的next指针指向要出队节点的后一节点*/
    free(que);                                                     /*释放指针que指向的内存*/
    return 1;


}   


int main()
{
    qpointer *qp;
    int x;
    //初始化队列
    qp=(qpointer*)malloc(sizeof(qpointer));
    QueueInit(qp);


    QueuePush(qp,1);
    QueuePush(qp,2);
    QueuePop(qp);
    printf("%d ",qp->rear->data);
 }

你可能感兴趣的:(C语言队列初始化出队入队)