diff --git a/homework3/CMakeLists.txt b/homework3/CMakeLists.txt index eae6355..edaf6ba 100644 --- a/homework3/CMakeLists.txt +++ b/homework3/CMakeLists.txt @@ -7,4 +7,6 @@ add_executable(test1 Stack.h Stack.cpp test1.cpp) -add_executable(test2 test2.cpp) +add_executable(test2 test2.cpp + SeqQueue.cpp + SeqQueue.h) diff --git a/homework3/SeqQueue.cpp b/homework3/SeqQueue.cpp new file mode 100644 index 0000000..4515169 --- /dev/null +++ b/homework3/SeqQueue.cpp @@ -0,0 +1,22 @@ +//SeqQueue.cpp + +#include "SeqQueue.h" + +void initSeqQueue(SeqQueue &q) { + q.front = q.rear = 0; +} + +bool isEmpty(SeqQueue &q) { + if (q.front == q.rear) { + return true; + } + return false; +} + +bool isFull(SeqQueue &q) { + if ((q.rear + 1) % MAX_SIZE == q.front) { + return true; + } + return false; +} + diff --git a/homework3/SeqQueue.h b/homework3/SeqQueue.h new file mode 100644 index 0000000..1f66ad9 --- /dev/null +++ b/homework3/SeqQueue.h @@ -0,0 +1,23 @@ +//SeqQueue.h + +#ifndef SEQQUEUE_H +#define SEQQUEUE_H + +#define MAX_SIZE 100 + +typedef struct SeqQueue { + int data[MAX_SIZE]; + int front, rear; +} SeqQueue; + +void initSeqQueue(SeqQueue &q); + +bool isEmpty(SeqQueue &q); + +bool isFull(SeqQueue &q); + +void enQueue(SeqQueue &q, int e); + +int deQueue(SeqQueue &q); + +#endif //SEQQUEUE_H