diff --git a/homework3/LinkQueue.cpp b/homework3/LinkQueue.cpp index 32f8da1..465dba3 100644 --- a/homework3/LinkQueue.cpp +++ b/homework3/LinkQueue.cpp @@ -4,3 +4,30 @@ #include using namespace std; + +void initQueue(linkQueue &q) { + q.list = new Node; + q.front = q.rear = q.list; +} + +bool isEmpty(linkQueue &q) { + if (q.front == q.rear) { + return true; + } + return false; +} + +bool enQueue(linkQueue &q, int e) { + q.rear = q.rear->next; + q.rear->data = e; +} + +int deQueue(linkQueue &q) { + if (isEmpty(q)) { + cout << "此队列为空" << endl; + return NULL; + } + int returnE = q.front->data; + q.front = q.front->next; + return returnE; +} diff --git a/homework3/LinkQueue.h b/homework3/LinkQueue.h index 02d27b1..38206fb 100644 --- a/homework3/LinkQueue.h +++ b/homework3/LinkQueue.h @@ -3,5 +3,23 @@ #ifndef LINKQUEUE_H #define LINKQUEUE_H +typedef struct Node { + int data; + Node *next; +} Node, *LinkList; + +typedef struct { + LinkList list; + Node *front; + Node *rear; +} linkQueue; + +void initQueue(linkQueue &q); + +bool isEmpty(linkQueue &q); + +bool enQueue(linkQueue &q, int e); + +int deQueue(linkQueue &q); #endif //LINKQUEUE_H