C++数据结构路程:第四章,链式队列

来源:互联网 发布:linux nagios 安装 编辑:程序博客网 时间:2024/05/28 05:13

 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;
}

原创粉丝点击