📄 12-7.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 + -