来源:百度文库 编辑:神马文学网 时间:2024/03/29 19:19:18
C++写的一个链式队列类
VC++6.0中调式通过的代码:
#include "stdafx.h"
#include
#include
using namespace std;
typedef char* ELEM;
class Link
{
public:
ELEM element;
Link* next;
Link(const ELEM& elemval,Link* nextp=NULL)
{element=elemval;next=nextp;}
Link(Link* nextp=NULL)
{next=nextp;}
~Link(){}
};
class Queue
{
private:
Link* front;
Link* rear;
public:
Queue(const int sz)
{front=rear=NULL;}
~Queue(){clear();}
void clear();
void enqueue(const ELEM&);
ELEM dequeue();
ELEM firstValue() const
{assert(!isEmpty());return front->element;}
bool isEmpty() const
{return front==NULL;}
};
void Queue::clear()
{
while(front!=NULL)
{rear=front;front=front->next ;delete rear;}
}
void Queue::enqueue(const ELEM& item)
{
if(rear!=NULL)
{
rear->next=new Link(item,NULL);
rear=rear->next ;
}
else front=rear=new Link(item,NULL);
}
ELEM Queue::dequeue()
{
assert(!isEmpty());
ELEM temp=front->element;
Link* ltemp=front;
front=front->next;
delete ltemp;
if(front==NULL) rear=NULL;
return temp;
}
int main()
{
Queue qu(5);
ELEM ee[5];
ee[0]="QQLove1";
ee[1]="QQLove2";
ee[2]="QQLove3";
ee[3]="QQLove4";
ee[4]="QQLove5";
for(int i=0;i<5;i++)
{
cout<<"入队"< qu.enqueue (ee[i]);
}
for(i=0;i<5;i++)
cout<<"出队"<return 0;
}