zoukankan      html  css  js  c++  java
  • 栈的数组实现

    //////////////////////////////////////////////////////////////////////////
    // 栈的数组实现
    // 2011-5-2 by kida#163.com
    //
    
    // 栈的最大容量
    const int MAX_STATCK_SIZE = 10;
    
    template <typename T>
    class Stack
    {
    public:
    	typedef T value_type;
    	typedef value_type& reference;
    	typedef const value_type& const_reference;
    	typedef size_t size_type;
    
    private:	
    	value_type data[MAX_STATCK_SIZE]; // 数据区
    	size_type top; // 栈顶位置
    
    public:
    	Stack() : top(-1) {}
    	~Stack() {}
    
    public:
    	// 入栈
    	void Push(const_reference x) throw(char*)
    	{
    		if ( IsFull() )
    		{
    			throw "stack is full";
    		}
    
    		data[++top] = x;
    	}
    
    	// 出栈
    	const_reference Pop() throw(char*)
    	{
    		if ( IsEmpty() )
    		{
    			throw "stack is empty";
    		}
    
    		return data[top--];
    	}
    
    	// 清空栈
    	void SetEmpty() { top = -1; }
    	
    	// 是否栈为空
    	bool IsEmpty() const { return (-1 == top) ? true : false; }
    	
    	// 栈是否达到最大容量
    	bool IsFull() const { return (MAX_STATCK_SIZE - 1 == top) ? true : false; }
    };
    
     
    优点:简单,速度快
    缺点:栈最大元素个数不能动态扩展,为了保证不溢出,往往设置较大的栈空间,存储空间利用率不高。
  • 相关阅读:
    python中列表排序的方法
    pyrhon3中字符串方法
    python数据探索与数据与清洗概述
    2020年日期表-python实现
    python中字符串离散化的例子
    python中常见的日期处理方法
    如何简单地理解Python中的if __name__ == '__main__'
    我的老爸老了
    关于
    关于
  • 原文地址:https://www.cnblogs.com/csuchao/p/2034464.html
Copyright © 2011-2022 走看看