📄 stack.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 + -