zoukankan      html  css  js  c++  java
  • STL stack

    #include<iostream>
    #include<stack>
    using namespace std;
    template<class T>
    class Stack
    {
    	T* elements;
    	int topPtr;
    	int maxsize;
    public:
    	Stack(int size = 50);
    	~Stack(){ delete[]elements; }
    	void push(const T&x);
    	void pop();
    	T top();
    	int size();
    	bool empty();
    };
    template<class T>
    Stack<T>::Stack(int size)
    {
    	maxsize = size;
    	topPtr = -1;
    	elements = new T[maxsize];
    }
    template<class T>
    void Stack<T>::push(const T& x)
    {
    	if (size() == maxsize)
    	{
    		cout << "栈满" << endl;
    		return;
    	}
    	else
    	{
    		elements[++topPtr] = x;
    	}
    }
    template<class T>
    void Stack<T>::pop()
    {
    	if (empty())
    		cout << "栈空" << endl;
    	else
    		topPtr--;
    }
    template<class T>
    T Stack<T>::top()
    {
    	if (empty())
    		cout << "栈空" << endl;
    	else
    		return elements[topPtr];
    }
    template<class T>
    int Stack<T>::size()
    {
    	return topPtr + 1;
    }
    template<class T>
    bool Stack<T>::empty()
    {
    	if (topPtr == -1)
    		return true;
    	else
    		return false;
    }
    int main()
    {
    	Stack<int>c;
    }
    
  • 相关阅读:
    297. Serialize and Deserialize Binary Tree
    331. Verify Preorder Serialization of a Binary Tree
    332. Reconstruct Itinerary
    329. Longest Increasing Path in a Matrix
    319. Bulb Switcher
    292. Nim Game
    299. Bulls and Cows
    Ice Cream Tower Gym
    B
    C
  • 原文地址:https://www.cnblogs.com/Hsiung123/p/13811927.html
Copyright © 2011-2022 走看看