#include <iostream> using namespace std; //链式存储结构的队列实际上就是带有头尾结点的 单链表 struct Node //结点结构体 { int data; Node *next; }; typedef struct //链表队列 { Node *front; Node *rear; }Cirqueue; void init(Cirqueue &q) //初始化 { q.front = q.rear = new Node; q.front ->next = NULL; } bool isEmpty(Cirqueue &q) //判定队空 { return q.front == q.rear; } void creatQueue(Cirqueue &q) //创建一个单链表 画一个逻辑图理清逻辑 { q.front = new Node; Node * head = q.front; int data; while(cin>>data && data) { Node *p = new Node; p ->data = data; p ->next = head ->next; head->next = p; head = head->next; } head->next = NULL; q.rear = head; } void enqueue(Cirqueue &q,int x) //入队 { Node *p = new Node; p ->data = x; p ->next = NULL; q.rear ->next = p; q.rear = p; } bool dequeue(Cirqueue &q,int &x) //出队 { if(q.front == q.rear) return false; x = q.front->next->data; Node *p = q.front ->next; q.front ->next = p->next; if(q.rear == p) q.rear = q.front; free(p); return true; } void traveralQueue(Cirqueue &q) { Node *p = q.front->next; while(p) { cout<<p->data<<" "; p = p->next; } } int main() { Cirqueue q; creatQueue(q); traveralQueue(q); return 0; }