?? linkquee.h
字號:
template<class T> class BinaryTree;
template<class T>
class LinkedQueue {
friend class BinaryTree<T>;
public:
LinkedQueue() {front = rear = 0;}
~LinkedQueue();
bool IsEmpty() const
{
return ((front) ? false : true);
}
bool IsFull() const;
T First() const;
T Last() const;
LinkedQueue<T>& Add(const T& x);
LinkedQueue<T>& Delete(T &x);
private:
BinaryTreeNode<T> *front;
BinaryTreeNode<T> *rear;
};
template<class T>
LinkedQueue<T>::~LinkedQueue()
{
BinaryTreeNode<T> *next;
while (front) {
next = front->Right;
delete front;
front = next;
}
}
template<class T>
bool LinkedQueue<T>::IsFull() const
{
BinaryTreeNode<T> *p;
try
{p = new BinaryTreeNode<T>;
delete p;
return false;}
catch (NoMem) {return true;}
}
template<class T>
T LinkedQueue<T>::First() const
{
if (IsEmpty())
throw OutOfBounds();
return front->data;
}
template<class T>
T LinkedQueue<T>::Last() const
{
if (IsEmpty()) throw OutOfBounds();
return rear->data;
}
template<class T>
LinkedQueue<T>& LinkedQueue<T>::Add(const T& x)
{
BinaryTreeNode<T> *p = new BinaryTreeNode<T>;
p->data = x;
p->link = 0;
if (front)
rear->link = p;
else
front = p;
rear = p;
return *this;
}
template<class T>
LinkedQueue<T>& LinkedQueue<T>::Delete(T& x)
{
if (IsEmpty()) throw OutOfBounds();
x = front->data;
BinaryTreeNode<T> *p = front;
front = front->Right;
delete p;
return *this;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -