#include <iostream>#include <string>#include <vector>using namespace std;/**队列的链式表示 */typedef struct QNode{ int data; struct QNode *next; } QNode,*QueuePtr;typedef struct { QueuePtr front;//队头指针 QueuePtr rear;//队尾指针 }LinkQueue;//初始化int initQueue(LinkQueue &Q) { Q.rear = new QNode; Q.front = Q.rear; Q.front->next = NULL;//带头结点 return 1;}//入队int enQueue(LinkQueue &Q,int e){ QueuePtr p = new QNode; p->data = e; p->next = NULL; Q.rear->next = p; Q.rear = p; return 1;}//取队头int getHead(LinkQueue &Q){ if(Q.front!=Q.rear) { cout<<"queue head:"<<Q.front->next->data<<endl; return Q.front->data; } } //出队 int deQueue(LinkQueue &Q){ if(Q.front==Q.rear) { cout<<"deQueue err: queue null"<<endl; return -1; } QueuePtr p = Q.front->next; Q.front->next = p->next; delete p; return 1; }int main(){ LinkQueue queue; initQueue(queue); enQueue(queue,1); enQueue(queue,2); enQueue(queue,3); enQueue(queue,4); enQueue(queue,5); deQueue(queue); getHead(queue);}
新闻热点
疑难解答