链队列

来源:互联网 发布:网络助手在哪里打开 编辑:程序博客网 时间:2024/05/16 02:36
#include<iostream>
using namespace st
d;

typedef int datatype;
typedef struct node
{
 datatype data;
 struct node *next;
}
QNode;

typedef struct
{
 QNode *front,*rear;
}
LQueue;

int main()
{  
 int Input(LQueue *q,datatype x);
 int Out(LQueue *q,datatype x);

 LQueue *q;
 q=new LQueue;
 QNode *p;
 p=new QNode;
 q->front=p;
 q->rear=p;
 p->next=NULL;

 cout<<"输入数据:(输入0结束)"<<endl;
 datatype x;
 while(x!=0)
 {
  cin>>x;
  if(x!=0)
   Input(q,x);
  else
   break;
 }
 cout<<"输出队列:"<<endl;
 while(Out(q,x));
 
 return 0;
}

int Input(LQueue *q,datatype x)
{
 QNode *p;
 p=new QNode;
 p->data=x;
 p->next=NULL;
 q->rear->next=p;
 q->rear=p;
 return 0;
}

int Out(LQueue *q,datatype x)
{
 QNode *p;
 if(q->front==q->rear)
 {
  cout<<endl;
  cout<<"队空!"<<endl;
  return 0;
 }
 else
 {
  p=q->front->next;
  q->front->next=p->next;
  x=p->data;
  cout<<x<<" ";
  free(p);
  if(q->rear==p)
   q->rear=q->front;
  return 1;
 }
}

0 0
原创粉丝点击