描述: 用链表实现队列
#include <iostream>
using namespace std;
struct Queue {
int data;
Queue *next;
};
// 定义队链指针域;
struct List {
Queue *front, *rear;
};
//初始化队链;
List *Init() {
Queue *p;
List *q;
p = new Queue();
p->next = NULL;
q = new List();
q->front = q->rear = p;
return q;
}
// 进队操作;
void Cir(List *q) {
Queue *p;
p = new Queue();
if (!p)
return;
cin >> p->data;
p->next = NULL;
q->rear->next = p;
q->rear = p;
}
// 出队操作;
int Del(List *q) {
Queue *p;
int e;
if (q->front == q->rear)
return 0;
p = q->front->next;
e = p->data;
q->front->next = p->next;
if (p == q->rear)
q->front = q->rear;
delete p;
return e;
}
int main() {
List *q;
// 初始化函数Init;
q = Init();
int i;
for (i = 1;i <= 5; ++i)
// 进队函数Cir;
Cir(q);
for (i = 1;i <= 5; ++i)
// 出队函数Cir;
cout << Del(q) << "\t";
cout << endl;
return 0;
}