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

📄 stack.h

📁 C、C++语言实现的数据结构重要算法和程序 比较全。
💻 H
字号:
//--------------------------//
//                          //
//          顺序栈类        //
//                          //
//--------------------------//

#if !defined(_INC_STACK_OO)
#define _INC_Stack_OO
   
#include<stdlib.h>
template<class T>
class Stack
{ 
private:
	T *data;
	int max,top;
public:
	Stack(int n=50);
	~Stack();
	int Size()const;
	int Empty()const;
	int Full()const;
	T Peek()const;
	void Push(const T& item);
	T Pop();
	void Clear();
};

template<class T>
Stack<T>::Stack(int n)
{
	data=new T[n];
	if(data==NULL)
	{
		cerr<<"overflow"<<endl;
		exit(1);
	}
	max=n;
	top=-1;
}

template<class T>
Stack<T>::~Stack()
{
	delete[]data;
}

template<class T>
int Stack<T>::Size()const
{
	return(top+1);
}

template<class T>
int Stack<T>::Empty()const
{
	if(top==-1)
	    return(1);
	 return(0);
}

template<class T>
int Stack<T>::Full()const
{
	if(top==max-1)
	    return(1);
	return(0);
}

template<class T>
T Stack<T>::Peek()const
{
	if(top==-1)
		{ cerr<<"Stack is empty!<<endl";
	      exit(1);
	    }
	return(data[top]);
}

template<class T>
void Stack<T>::Push(const T& item)
{
	if(top==max-1)
		{ cerr<<"Stack is full!"<<endl;
	      exit(1);
	    }
	top++;
	data[top]=item;
}

template<class T>
T Stack<T>::Pop()
{
	if(top==-1)
		{ cerr<<"Pop an empty stack!"<<endl;
	      exit(1);
	    }
	top--;
	return(data[top+1]);
}

template<class T>
void Stack<T>::Clear()
{
	top=-1;
}

#endif //_INC_Stack_OO

⌨️ 快捷键说明

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