#include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; typedef struct LinkNode{ int data; struct LinkNode *next; }LinkNode; typedef struct LinkQueue{ LinkNode *fronts,*rear; }LinkQueue; //初始化 int Init_LinkQueue(LinkQueue &Q) { Q.fronts=Q.rear=(LinkNode*)malloc(sizeof(LinkNode)); Q.fronts->next==NULL; } //入队 int EnQueue(LinkQueue &Q,int x) { LinkNode *s; s=(LinkNode*)malloc(sizeof(LinkNode)); s->data=x; s->next=NULL; Q.rear->next=s; Q.rear=s; } //出队 int DeQueue(LinkQueue &Q,int &x) { if(Q.fronts==Q.rear) return 0; LinkNode *q=Q.fronts->next; x=q->data; Q.fronts->next=q->next; if(Q.rear==q) { Q.rear=Q.fronts; //若原队列中仅有一个节点,删除后变空 } free(q); return 1; } int show_Queue(LinkQueue Q) { Q.fronts=Q.fronts->next; while(Q.fronts!=NULL) { printf("%d ",Q.fronts->data); Q.fronts=Q.fronts->next; } } int main() { LinkQueue Q; Init_LinkQueue(Q); EnQueue(Q,1); EnQueue(Q,2); EnQueue(Q,3); show_Queue(Q); int a; DeQueue(Q,a); printf("%d\n",a); show_Queue(Q); cout << "Hello world!" << endl; return 0; }