码迷,mamicode.com
首页 > 其他好文 > 详细

小代码 栈的简单实现

时间:2016-04-10 19:34:22      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:小代码

/*****************************              WZ ASUST 2016
         
*****************************/
 #include <iostream>  
using namespace std;
const int StackSize=10;  
template <class T>        
class SeqStack
{
public:
    SeqStack( ) ;            //构造函数,栈的初始化
	~SeqStack( );            //析构函数
    void Push(T x);          //将元素x入栈
    T Pop( );                //将栈顶元素弹出
    T GetTop( );	         //取栈顶元素(并不删除)
	bool Empty( );           //判断栈是否为空
private:
    T data[StackSize];      //存放栈元素的数组
    int top;                //栈顶指针,指示栈顶元素在数组中的下标
};
 
template <class T>
SeqStack<T>::SeqStack( )
{
	top=-1;
}
 
template <class T>
SeqStack<T>::~SeqStack( )
{
}
 
template <class T>
void SeqStack<T>::Push(T x)
{
    if (top== StackSize-1) throw "上溢";
    top++;
    data[top]=x;
}
 
template <class T>
T SeqStack<T>::Pop( )
{
    T x;
    if (top==-1) throw "下溢";
    x=data[top--];
    return x;
}
 
template <class T>
T SeqStack<T>::GetTop( )
{
	if (top!=-1)  
    return data[top];
}
 
template <class T>
bool SeqStack<T>::Empty( )
{
	if(top==-1) return 1;
	else return 0;
}
 
void test1()
{    
    SeqStack<int> a;      //创建模板类的实例
   
    if (a.Empty( )){
	
		cout<<"栈空,执行入栈操作:"<<endl;
    	cout<<"对15和10执行入栈操作:"<<endl;
	    try
		{
			a.Push(15);
	        a.Push(10);  
		}
		catch(char* wrong)
		{
			cout<< wrong;
		}
		
		cout<<"栈顶元素为:"<<endl;   //取栈顶元素
		cout<<a.GetTop( )<<endl;
		    
	    cout<<"执行出栈操作:"<<endl;
	    cout<<a.Pop( )<<endl;          //执行出栈操作
        cout<<"栈顶元素为:"<<endl;
	    cout<<a.GetTop( )<<endl;	
	}
	else{
	
		cout<<"栈不空"<<endl;
	}
}
int main()
{
test1();
return 0;
}

不带拷贝构造,,,,

小代码 栈的简单实现

标签:小代码

原文地址:http://wzsts.blog.51cto.com/10251779/1762370

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!