clear()函数有些问题,晚点调试,在看树,接下来才是数据结构的精华
#include "stdafx.h"
#include <iostream>
using namespace std;
class Node
{
private:
int data;
Node*pnext;
friend class lqueue;
public:
Node(int n);
~Node();
};
class lqueue
{
private:
Node*pfront;
Node*prear;
public:
lqueue();
~lqueue();
void clear();
bool isempty();
void insert(int vdata);
void dele();
void Show();
};
Node::Node(int n)
{
data=n;
pnext=0;
}
Node::~Node()
{
}
lqueue::lqueue()
{
pfront=0;
prear=0;
}
lqueue::~lqueue()
{
clear();
}
void lqueue::clear()
{
Node*pmove;
while(pfront)
{
pmove=pfront->pnext;
delete pfront;
pfront=pmove;
}
}
bool lqueue::isempty()
{
return pfront==0;
}
void lqueue::insert(int vdata)
{
if(pfront==0)
{
pfront=prear=new Node(vdata);
}
else
{
Node*pinsert=new Node(vdata);
pinsert->pnext=0;
prear->pnext=pinsert;
prear=pinsert;
}
}
void lqueue::dele()
{
if(isempty())
{
std::cout<<"there is no data"<<endl;
exit(1);
}
Node*pdele=pfront;
pfront=pfront->pnext;
delete pdele;
}
void lqueue::Show()
{
Node*pmove=pfront;
while(pmove)
{
cout<<" "<<pmove->data<<endl;
pmove=pmove->pnext;
}
}
int main(int argc, char* argv[])
{
lqueue queue;
int array[10]={1,3,5,7,9,0,2,4,6,8};
for(int i=0;i<10;i++)
{
queue.insert(array[i]);
}
queue.Show();
//queue.clear();
//queue.Show();
queue.dele();
queue.Show();
return 0;
}