#include <iostream>
using namespace std;
#define Elemtype int
#define maxSize 100
typedef struct Node{
Elemtype data;
struct Node *next;
}qNode;
typedef struct {
qNode *rear;
qNode *front;
}linkQueue;
bool initLinkQueue(linkQueue &Q) {
Q.rear = Q.front = new qNode;;
Q.front->next = NULL;
if(Q.front == NULL) return false;
else return true;
}
bool isEmptyLinkQueue(linkQueue Q) {
if(Q.front == Q.rear) return true;
else return false;
}
bool pushLinkQueue(linkQueue &Q, Elemtype e) {
qNode *newp;
newp = new qNode;
newp->data = e;
Q.rear->next = newp;
newp->next = NULL;
Q.rear = newp;
return true;
}
bool popLinkQueue(linkQueue &Q, Elemtype &e) {
if(isEmptyLinkQueue(Q)) {
cout << "队列为空,无法出队" << endl;
return false;
}
qNode *p;
p = Q.front->next;
e = p->data;
Q.front->next = p->next;
delete p;
return true;
}
bool distroyLinkQueue(linkQueue &Q) {
Elemtype e;
while(! isEmptyLinkQueue(Q)) {
popLinkQueue(Q, e);
}
delete Q.front;
}
int main() {
// linkQueue Q;
// initLinkQueue(Q);
// for(int i = 1; i < 5; i ++) {
// pushLinkQueue(Q, i);
// }
// Elemtype e;
// for(int i = 1; i <= 5; i ++) {
// popLinkQueue(Q, e);
// cout << e << " ";
// if(isEmptyLinkQueue(Q)) {
// cout << "aaa";
// }
// }
// cout << endl;
return 0;
}
10-30
8412
06-11
2531
09-07
621
08-19
952
08-20
306