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

📄 my stack.h

📁 实现 stack或queue 的基本 ; 用 stack来实现 queue或用queue来实现 stack。
💻 H
字号:
#ifndef _STACK_H
#define _STACK_H
#include <iostream>   
   
template <typename T> 
 class CMyStack
{
	T* elems;
	long index;
	long capacity;
public:
	CMyStack(){
		index = 0;
		capacity = 100;
		elems = new T[capacity];	
	}
	~CMyStack()
	{
		delete[] elems;
	}
	void Push(T const& );
	T& Pop();
	T& Top() const;
	bool IsEmpty() const {
		return (index==0);
	}
	void Empty(){
		index = 0;
	}
};
template <typename T> 
	void CMyStack<T>::Push(T const&  elem)
{
	if (index>=capacity)
	{
		capacity*=2;
		T* temp = new T[capacity];
		long i;
		for (i=0;i<capacity/2;i++)
		{
			temp[i]=elems[i];
		}
		delete[] elems;
		elems = temp;
	}
	elems[index++]=elem;

}
template <typename T> 
	T& CMyStack<T>::Pop()
{
	if(index == 0)
	{
		cout<<"ERROR: the stack is empty and cannot be pop!"<<endl;
		exit(0);
	}
	index--;
	return elems[index];
}
template <typename T> 
	T& CMyStack<T>::Top() const
{
	if(index == 0)
	{
		cout<<"ERROR: there is no element in the stack!"<<endl;
		exit(0);
	}
	return elems[index-1];
}

#endif

⌨️ 快捷键说明

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