求高手解决程序结构的题

来源:百度知道 编辑:UC知道 时间:2024/06/19 13:25:07
3-3假设以数组Q[m]存放循环队列中的元素, 同时以rear和length分别指示环形队列中的队尾位置和队列中所含元素的个数。给出该循环队列的相应类型描述及队列的队空条件和队满条件, 并写出相应的插入(enqueue)和删除(dlqueue)元素的操作。

3-4若使用单循环链表来表示队列, queuePtr为指向链表尾部结点的指针。试基于此结构给出队列的插入(enqueue)和删除(dequeue)算法。

这2道题不怎么难哈。只不过我懒得做,而且对我来说确实上脑壳。谢谢大家了哈。
3-4的答案……谢了!!

3.3 #include <assert.h>
template <class Type> class Queue { //循环队列的类定义
public:
Queue ( int=10 );
~Queue ( ) { delete [ ] elements; }
void EnQueue ( Type & item );
Type DeQueue ( );
Type GetFront ( );
void MakeEmpty ( ) { length = 0; } //置空队列
int IsEmpty ( ) const { return length == 0; } //判队列空否
int IsFull ( ) const { return length == maxSize; } //判队列满否
private:
int rear, length; //队尾指针和队列长度
Type *elements; //存放队列元素的数组
int maxSize; //队列最大可容纳元素个数
}
template <class Type>
Queue<Type>:: Queue ( int sz ) : rear (maxSize-1), length (0), maxSize (sz) {
//建立一个最大具有maxSize个元素的空队列。
elements = new Type[maxSize]; //创建队列空间
assert ( elements != 0 ); //断言: 动态存储分配成功与否
}
template<class Type>
void Queue<Type> :: EnQueue ( Type &item )