C++实现链队列的基础操作(二)

2012-12-10 12:47:51 · 作者: · 浏览: 789

 

  void enqueue(int elem);    //插入元素为elem 的队尾远么

  int  dequeue();                     //删除队头元素,并返回其值

  void traverse();                  //遍历队列中的元素

  };

  queue.cpp

  #include "queue.h"

  void queue::enqueue(int elem)

  {

  list *newlist=new list;

  newlist->data=elem;

  newlist->next=NULL;

  if(front==rear)//说明是空队列

  {

  front->next = newlist;

  rear=newlist;

  }

  else

  {

  rear->next=newlist;

  rear=newlist;

  }

  }

  int queue::dequeue()  //从队头出去

  {

  int elem;//用于记录出队列的元素

  list *temp=new list;  //用于临时存储要出队列队头

  if(front==rear)return -1;

  else

  {

  temp = front->next;

  elem=temp->data;

  front->next=temp->next;

  }

  delete temp;

  return elem;

  }

  void queue::traverse()         //遍历整个队列

  {

  list *temp;

  cout<<"从队头到队尾的元素分别为:"<<endl;

  for(temp=front->next;temp->next!=NULL;temp=temp->next)

  {

  cout<<temp->data<<" ";