队列
Data Structures Experiment #5 - 设计并实现队列类。
MyQueue();
构造函数。~MyQueue();
析构函数。void push_back(int data);
将数据data插入到队列的队尾。void pop_front();
队首元素出队。int front();
询问队首元素的值。
SeqQueue
0x00 数据域封装
“队尾指针”、“队首指针”、队列和最大元素个数。
1 | private: |
0x01 构造函数
分配MAX_ELEMENTS
大小的内存空间。
“队尾指针”和“队首指针”均初始化为0。
1 | SeqQueue::SeqQueue(){ |
0x02 push_back
判断队列满否。
队列不满则在队尾入队。
1 | void SeqQueue::push_back(int data){ |
0x03 pop_front
判断队列空否。
队列不空则在队首出队。
1 | void SeqQueue::pop_front(){ |
0x04 front
判断队列空否。
队列不空则返回队首元素。
1 | int SeqQueue::front() const{ |
0x05 析构函数
释放内存。
1 | SeqQueue::~SeqQueue(){ |
LinkQueue
0x00 数据域封装
定义队列结点结构体(数据域和指针域)、队首指针和队尾指针。
1 | private: |
0x01 构造函数
队首指针和队尾指针均初始化为空。
1 | LinkQueue::LinkQueue(){ |
0x02 push_back
分情况:
- 若队列为空则直接链入队;
- 若队列不为空则在队尾链入队。
1 | void LinkQueue::push_back(int data){ |
0x03 pop_front
判断队列空否。
队列不空则队首指针后移并释放内存。
1 | void LinkQueue::pop_front(){ |
0x04 front
返回队首处的值。
1 | int LinkQueue::front() const{ |
0x05 析构函数
逐结点释放内存(同链表)。
1 | LinkQueue::~LinkQueue(){ |