64,639
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
#define DEFAULT -1
class qtype
{
friend class Cqueue;
public:
qtype(int elem);
qtype ( );
public:
int data;
qtype * next;
};
inline qtype::qtype( int elem):data(elem),next(0) { }
inline qtype::qtype( ):data(DEFAULT),next(0){ }
class Cqueue
{
public:
Cqueue ();
int queuelen ( ) const ;
void atfront ( int elem);
void insert ( int elem,qtype *&p) ;
void display ( ) ;
void insert_front ( int elem);
qtype *head, *tail;
private:
int qlen_;
// qtype *head, *tail;
Cqueue ( qtype * q) ;
Cqueue& operator= (const Cqueue&);
};
inline Cqueue::Cqueue():qlen_(0),head(0),tail(0) {}
int Cqueue::queuelen() const
{
return qlen_;
}
void Cqueue::insert(int elem,qtype*& p )
{
qtype *temp = new qtype (elem);
if( p != 0)
{
temp->next =p->next ;
p->next = temp;
qlen_ ++;
}
else
{
atfront( elem);
}
}
void Cqueue::atfront ( int elem)
{
qtype * qtemp = new qtype (elem);
if (!head)
{
head = tail = qtemp;
}
else
{
qtemp->next = head;
head = qtemp;
}
qlen_++;
}
void Cqueue::display( )
{
//qtype *que = new qtype();
qtype *que = head;
cout << "the elem of the queue is:" << endl;
while ( que)
{
cout << que->data << " ";
que = que->next ;
}
}
void main ()
{
Cqueue myque;
for (int i = 0; i < 10; i++) //我看你的程序,你的程序是这样:先插入一个数,然后插入入道节点的前面,除了一个节点
{
myque.insert ( i ,myque.head); //为了测试列表头的元素/是否在变
// cout << "the value of head is: \n" << myque.head->data << endl; 不太清楚你这要干什么?
}
myque.display ();
}