⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 带队满标记的循环链表.txt

📁 带队满标记的循环链表
💻 TXT
字号:
#include <iostream.h>
#include <conio.h>
const int MaxSize = 50;
typedef char DataType;
//循环队列类的界面 
class Queue {
  public:
    Queue();
    void ClearQueue(void);
    void EnQueue(DataType x);
    DataType DelQueue(void);
    DataType GetFront(void);
    DataType GetRear(void);    
    bool IsFull(void);
    bool IsEmpty(void);
  private:
    int front,rear;
    bool flag;//当队满时flag为真,否则为假 
    DataType q[MaxSize];
};

Queue::Queue() {
  front = 0;
  rear = 0;
  flag = false; 
}
DataType Queue::GetFront() {
   if(IsEmpty()) {
     cerr<<"队列已空!!"<<endl;
     exit(1);
   }
   else {
      return q[(front+1)%MaxSize];
   } 
}

DataType Queue::GetRear() {
   if(IsEmpty()) {
     cerr<<"队列已空!!"<<endl;
     exit(1);
   }
   else {
      return q[rear];
   } 
}
void Queue::EnQueue(DataType x) {
  if (IsFull()) {
     cerr<<"队列已满!!"<<endl;
     cerr<<x<<" 不能进队!"<<endl; 
   }
   else {
     rear = (rear+1)%MaxSize;
     q[rear] = x;
     if(front == rear) flag = true;
   }
}

DataType Queue::DelQueue(void) {
   if (IsEmpty()) {
      cerr<<"队列已空!!"<<endl; 
      return '#';
    }
    else {
      front = (front+1)%MaxSize;
      flag = false;
      return q[front];
    }
}

bool Queue::IsEmpty(void) {
 if((rear == front)&&(!flag)) return true;
 else return false;
}

bool Queue::IsFull(void) {
 if((rear == front)&&(flag)) return true;
 else return false;
}

void Queue::ClearQueue(void) {
//   front = 0;
//   rear = 0; 
   rear = front;
}

int main()
{
  Queue q;
  cout<<"进队次序:"<<endl; 
  for (char ch='A';ch<='Z';ch++) {
    cout<<ch<<"  ";
    q.EnQueue(ch);
  }
  cout<<endl;
  cout<<"对头元素:"<<q.GetFront()<<endl; 
  cout<<"对尾元素:"<<q.GetRear()<<endl; 
  
  cout<<"出队次序:"<<endl; 
  for (int i=1;i<=20;i++)
    cout<<q.DelQueue()<<"  ";
  cout<<endl;
  getch();
  return 0;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -