1. 程式人生 > >實驗二:順序棧,鏈棧,順序佇列,鏈佇列

實驗二:順序棧,鏈棧,順序佇列,鏈佇列

#include<iostream.h>
const int QueueSize=100;
struct Node
{
 int data;
 Node *next;
};
class LinkQueue
{
public:
 LinkQueue();
 ~LinkQueue(){};
 void EnQueue(int x);
 int DeQueue();
 int GetQueue();
 int Empty();
private:
 Node *front,*rear;
};
LinkQueue::LinkQueue()
{
 Node *s;
 s=new Node;s->next=NULL;
 front=rear=s;
}
void LinkQueue::EnQueue(int x)
{
 Node *s;
 s=new Node;s->data=x;
 s->next=NULL;
 rear->next=s;
 rear=s;
}
int LinkQueue::DeQueue()
{
 Node *p;
 int x;
 if(rear==front)
  cout<<"佇列為空"<<endl;
    p=front->next;x=p->data;
 front->next=p->next;
 if(p->next==NULL) rear=front;
 delete p;
 return x;
}
int LinkQueue::GetQueue()
{
 return front->next->data;
}
int LinkQueue::Empty()
{
 if(front==rear)
  return 1;
    else return 0;
}
void main()
{
 LinkQueue Q;
 if(Q.Empty())
  cout<<"佇列為空"<<endl;
 else
        cout<<"佇列非空"<<endl;
 cout<<"元素15和10執行入隊操作"<<endl;
 Q.EnQueue(10);
 Q.EnQueue(15);
 cout<<"隊頭元素為"<<endl;
 cout<<Q.GetQueue()<<endl;
 cout<<"執行出隊操作"<<endl;
 Q.DeQueue();
 cout<<"隊頭元素為"<<endl;
 cout<<Q.GetQueue()<<endl;
}