📄 queue_linked.h
字号:
//200811052343
template <class T>//注:预先声明中,这个也不要忘记
class Queue_linked;
template <class T>
class ListNode//数据类
{
public:
ListNode():link(NULL){};//参数列表
~ListNode(){};
friend class Queue_linked<T>;
private:
ListNode<T> *link;
T data;
};
template <class T>
class Queue_linked
{
public:
Queue_linked();
~Queue_linked(){};
bool IsEmpty() const;
int Length() const;
bool GetFront(T &) const;
bool En(T);
bool De(T &);
private:
ListNode <T> node;
int Currentsize;
ListNode <T> *front,*rear;
};
template <class T>
Queue_linked<T>::Queue_linked()
{
Currentsize=0;
front=rear=NULL;
}
template <class T>
bool Queue_linked<T>::IsEmpty() const
{
return (Currentsize==0);
}
template <class T>
int Queue_linked<T>::Length() const
{
return Currentsize;
}
template <class T>
bool Queue_linked<T>:: GetFront(T &el) const//结构体能使用=吗???
{
if(!IsEmpty())
{
el=front->data;
return true;
}
else
return false;
}
template <class T>
bool Queue_linked<T>::En(T el)
{
if(IsEmpty())//建立第一个节点
{
rear=front=new ListNode <T>;
rear->link=NULL;
}
else
{
rear->link=new ListNode <T>;
rear=rear->link;
rear->link=NULL;
}
rear->data=el;
Currentsize++;
return true;
}
template <class T>
bool Queue_linked<T>::De(T &el)
{
ListNode <T> *p;
if(!IsEmpty())
{
p=front;
el=front->data;
front=front->link;
if(Currentsize==1)//只有一个节点
rear=NULL;
delete p;//注:不用带*
Currentsize--;
return true;
}
else
return false;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -