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

📄 stack.cpp

📁 设计模式实例: 适配器(Adapter)模式源代码
💻 CPP
字号:
// Stack.cpp: implementation of the Stack class.
//
//////////////////////////////////////////////////////////////////////

#include "Stack.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Stack::Stack()
{
	m_iData=new int[InitSize];
	m_iLength=0;
	m_iSize=InitSize;
}

Stack::~Stack()
{
	if(m_iData!=NULL)
		delete m_iData;
	m_iLength=0;
	m_iSize=InitSize;
}

void Stack::Push(int a)
{
	if(IsFull())
	{
		int *temp=new int[m_iSize+DeltaSize];
		for(int i=0;i<m_iLength;i++)
			temp[i]=m_iData[i];
		temp[m_iLength++]=a;
		m_iSize=m_iSize+DeltaSize;
		delete m_iData;
		m_iData=temp;
	}
	else
	{
		m_iData[m_iLength++]=a;
	}

}
int Stack::Pop()
{
	if(IsEmpty())
	{
		return 0;
	}
	else
	{
		int temp=m_iData[--m_iLength];
		if((m_iSize-DeltaSize)>=InitSize&&m_iLength<=(m_iSize-DeltaSize))
		{
			int *p=new int[m_iSize-DeltaSize];
			for(int i=0;i<m_iLength;i++)
				p[i]=m_iData[i];
			delete m_iData;
			m_iData=p;
			m_iSize=m_iSize-DeltaSize;
		}
		
		return temp;
	}
}
bool Stack::IsEmpty()
{
	if(m_iLength==0)
		return true;
	else 
		return false;
}
bool Stack::IsFull()
{
	if(m_iLength==m_iSize)
		return true;
	else
		return false;
}

int Stack::GetLength()
{
	return m_iLength;
}

int Stack::GetSize()
{
	return m_iSize;
}

⌨️ 快捷键说明

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