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

📄 zmndl.cpp

📁 栈模拟队列的一个小程序
💻 CPP
字号:
#include<iostream>
 using namespace std;
template<class T>
class stack
{
public:
	stack(int mSize);
	~stack(){delete[]s;}
	bool IsEmpty()const{return top==-1;}
	bool IsFull()const{return top==maxTop;}
	T Top(T &x)const;
	T Push(T x);
	T Pop();
	T pull()const;
	void Clear(){top=-1;}
//private:
	int top;
	int maxTop;
	T*s;
};
template<class T>
stack<T>::stack(int mSize)
{
	maxTop=mSize-1;
	s=new T[mSize];
	top=-1;
}
template<class T>
T stack<T>::Top(T &x)const
{
	if(IsEmpty()){
		cout<<"Empty"<<endl;
		return false;
	}
	x=s[top];return s[top];
}
template<class T>
T stack<T>::Push(T x)
{
	if(IsFull()){
		cout<<"Overflow"<<endl;
		return false;
	}
	top++;
	s[top]=x;
	return s[top];
}
template<class T>
T stack<T>::Pop()
{
	if(IsEmpty())
	{
		cout<<"Underflow"<<endl;
		return false;
	}
top--;
return s[top];
}

void main()
{
stack<int>s1(4);
stack<int>s2(4);
int i,x,y;
int a,b,c,d;
cin>>a>>b>>c>>d;
s1.Push(a);
s1.Push(b);
s1.Push(c);
cout<<"队尾插入操作模拟:\n";
cout<<"原模拟队列元素为:"<<c<<b<<a<<"\n";
cout<<"插入后队列元素为:\n";
for(i=s1.top;i>=0;i--)
{
s2.Push(s1.Top(x));
s1.Pop();

}
s2.Push(d);
for(i=s2.top;i>=0;i--)
{
s1.Push(s2.Top(x));
s2.Pop();
}
for(i=s1.top;i>=0;i--)
{
	cout<<s1.Top(x);
	s1.Pop();
}
cout<<"\n";
cout<<"队头删除模拟:\n";
cout<<"删除后对列的元素为:\n";
s1.Push(d);
s1.Push(a);
s1.Push(b);
s1.Push(c);
s1.Pop();
for(i=s1.top;i>=0;i--)
{
cout<<s1.Top(x);
s1.Pop();
}
cout<<"\n";
}

⌨️ 快捷键说明

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