C编程之数据结构栈的编写,编写一个栈

#pragmaonce

#includeiostream

templatetypenameDATA

classMyStack

{

public:

MyStack(intiSize)//构造函数

{

m_iSize=iSize;

m_iTop=-1;

m_pStack=newDATA[iSize];

}

~MyStack()//析构函数

{

delete[]m_pStack;

m_pStack=NULL;

m_iTop=-1;

m_iSize=0;

}

boolIsEmpty()const;//判断是否为空

boolIsFull()const;//判断是否为满

intSize();//获取栈内元素个数

boolPus(constDATAdata);//向栈内压进元素

boolPop(DATAdata);//从栈内弹出元素

private:

DATA*m_pStack;

intm_iTop;

intm_iSize;

};

templatetypenameDATA

boolMyStackDATA::IsEmpty()const

{

returnm_iTop==-1?true:false;

}

templatetypenameDATA

boolMyStackDATA::IsFull()const

{

returnm_iTop==m_iSize-1?true:false;

}

templatetypenameDATA

intMyStackDATA::Size()

{

returnm_iTop+1;

}

templatetypenameDATA

boolMyStackDATA::Pus(constDATAdata)

{

if(IsFull())

{

returnfalse;

}

else

{

++m_iTop;

m_pStack[m_iTop]=data;

returntrue;

}

}

templatetypenameDATA

boolMyStackDATA::Pop(DATAdata)

{

if(IsEmpty())

{

returnfalse;

}

else

{

data=m_pStack[m_iTop];

--m_iTop;

returntrue;

}

}




转载请注明:http://www.aierlanlan.com/tzrz/7299.html