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

📄 栈.cpp

📁 栈的建立和应用
💻 CPP
字号:
// 栈.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;
template <class T>
class sq_Stack
{
	private:
		int mm;
		int top;
		T *s;
	public:
		sq_Stack(int);
		void prt_sq_Stack();
		int flag_sq_Stack();
		void ins_sq_Stack(T);
		T del_sq_Stack();
		T read_sq_Stack();
};
template <class T>
sq_Stack<T>::sq_Stack(int m)
{
	mm=m;
	s=new T[mm];
	top=0;
	return;
}
template <class T>
void sq_Stack<T>::prt_sq_Stack()
{
	int i;
	cout<<"top="<<top<<endl;
	for(i=top;i>=0;i--)
		cout<<s[i-1]<<endl;
	return;
}
template <class T>
int sq_Stack<T>::flag_sq_Stack()
{
	if(top==mm) return(-1);
	if(top==0) return(0);
	return(1);
}
template <class T>
void sq_Stack<T>::ins_sq_Stack(T x)
{
	if(top==mm)
	{
		cout<<"Stack overflow!"<<endl;
		return;
	}
	top+=1;
	s[top-1]=x;
	return;
}
template <class T>
T sq_Stack<T>::del_sq_Stack()
{
	T y;
	if(top==0)
	{
		cout<<"Stack underflow!"<<endl;
		return(0);
	}
	y=s[top-1];
	top-=1;
	return(y);
}
template <class T>
T sq_Stack<T>::read_sq_Stack()
{
	if(top==0)
	{
		cout<<"Stack empty!"<<endl;
		return(0);
	}
	return(s[top-1]);
}
/////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
	sq_Stack<int> s=10;
	s.ins_sq_Stack(50);
	s.ins_sq_Stack(60);
	s.ins_sq_Stack(70);
	s.ins_sq_Stack(80);
	s.ins_sq_Stack(90);
	s.ins_sq_Stack(100);
	cout<<"输出栈顶指针与栈中的元素:"<<endl;
	s.prt_sq_Stack();
	cout<<"栈顶元素:"<<s.read_sq_Stack()<<endl;

	cout<<"输出退栈元素:"<<endl;
	cout<<s.del_sq_Stack()<<endl;
	cout<<s.del_sq_Stack()<<endl;
	cout<<s.del_sq_Stack()<<endl;
	cout<<"******"<<endl;
	s.prt_sq_Stack();
	return 0;
}

⌨️ 快捷键说明

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