队列的链表实现

来源:互联网 发布:如何取消网络桥接 编辑:程序博客网 时间:2024/05/05 02:31

 

#include <iostream>
#include <iomanip>
using namespace std;

typedef class List
{
public:
 int data;
 class List* next;
}Node,*Link;

 

Link front=NULL;
Link rear=NULL;

 

//队列数据的存入
void Add_Queue(int value)
{
 Link AddNode=new Node;
 AddNode->data=value;
 AddNode->next=NULL;

 

 //检查尾端是否为空,如果是,则在前端插入数据
 if(NULL==rear)
  front=AddNode;

 

 else
  rear->next=AddNode;  //将结点加入到队列尾端
 rear=AddNode;   //将尾端指针指向新加入的节点
 
}

 

//队列数据的取出
int Del_Queue()
{


 //检查顶端是否为空,不空,则输出顶端数据
 if(NULL!=front)
 {
  Link top=front;
  front=front->next;
  int value=top->data;  //将队列数据取出
  delete top;  //将队列的前端指针指向下一个
  return value;
 }


 else
  return -1;
}

 

int main()
{
 int value;
 cout<<" 队列的链表实现\n";
 cout<<"\n 请输入5个数:";
 for(int i=1;i<=5;++i)
 {
  cin>>value;
  Add_Queue(value);
 }

 

 //如果队列顶端不空,则输出数据
 cout<<"\n 输出队列中的数据:\n";
 while(!(front==NULL))
  cout<<setw(3)<<Del_Queue();
 cout<<"\n\n";
 return 0;
}

 

0 0