链队是一个简单的链表,只是运算受限,先进先出
直接上代码
#include "stdio.h" #include<stdlib.h> #define ERROR 0 #define OK 1 typedef int Status; typedef int QElemType; typedef struct QNode { QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; } LinkQueue; Status InitQueue(LinkQueue &Q) { Q.front=Q.rear=new QNode; Q.front->next=NULL; return OK; } Status 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; return OK; } Status OutQueue(LinkQueue &Q,QElemType &e) { QueuePtr p; if(Q.front ==Q.rear) return ERROR; p=Q.front->next; e=p->data; Q.front->next=p->next; if(Q.rear==p) Q.rear=Q.front; delete p; return OK; } int main(int argc, char* argv[]) { LinkQueue Q; QElemType e; InitQueue(Q); EnQueue(Q,1); EnQueue(Q,1); OutQueue(Q,e); return 0; }