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

📄 12-7.cpp

📁 为初学者提供的最佳的C++程序设计源程序库
💻 CPP
字号:
#include<iostream.h>
#include<iomanip.h>
#include<ctype.h>
template<class Type>
class queue
{
private:
   Type size;
   Type start;
   Type end;
   Type *data;
public:
   queue();
   queue(Type n);
   ~queue()
   {
     delete data;
    }
   void put(Type value);
   Type get();
   void clear();
   void ShowQueue();
};
template<class Type>
queue<Type>::queue()
{
  size=20;
  start=end=0;
  data=new Type[size];
}
template<class Type>
queue<Type>::queue(Type n)
{
  size=n;
  start=end=0;
  data=new Type[size];
}
template<class Type>
void queue<Type>::put(Type value)
{
  if((start+1)%size==end)
  {
   cout<<"\n***Queue is full!***\n";
   return ;
   }
   data[start]=value;
   start=(start+1)%size;
   cout<<"You have put a data into the queue!\n";
   return;
}
template<class Type>
Type queue<Type>::get()
{
  Type value;
  if(start==end)
  {
    cout<<"\n***Queue is empty!***\n";
    return(0);
  }
  value=data[end];
  end=(end+1)%size;
  cout<<"\n Get"<<value<<"from the queue!\n";
  return(value);
}
template<class Type>
void queue<Type>::clear()
{
  start=end;
  cout<<"\n ***Queue is empty!***\n";
}
template<class Type>
void queue<Type>::ShowQueue()
{
   if(start==end)
   {
    cout<<"\n The queue has no data!\n";
    return;
   }
   Type i;
   cout<<"\n The content of queue:\n";
   for(i=end;i!=start;i=((i+1)%size))
      cout<<setw(5)<<data[i];
      cout<<"\n\n";
}
main()
{
  cout<<"<P>-----Put data to queue\n";
  cout<<"<G>-----Get data from queue\n";
  cout<<"<L>-----Clear stack\n";
  cout<<"<S>-----Show the content of queue\n";
  cout<<"<Q>-----Quit...\n";
  queue<char>ss(5);
  char value;
  char ch;
  while(1)
  {
    cout<<"\n Please select an item:";
    cin>>ch;
    ch=toupper(ch);
    switch(ch)
    {
      case 'P':
         cout<<"\n Enter the value that"
             <<"you want to put:";
         cin>>value;
         ss.put(value);
         break;
      case 'G':
         value=ss.get();
         break;
      case 'L':
         ss.clear();
         break;
      case 'S':
         ss.ShowQueue();
         break;
      case 'Q':
         return 0;
      default:
         cout<<"\n You have inputted a wrong item!Please try again!\n";
         continue;
      }
     }
}

⌨️ 快捷键说明

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