C++实现栈数据结构
#ifndef__STACK__#define__STACK__classCStack{int*m_pData;intm_nCount;intm_nPos;public:CStack(intnLength);~CStack();boolisFull();boolisEmpty();voidpush(constint&value);boolpop(int&value);};CStack::CStack(intnLength){//创建栈类时,确定其大小m_pData=newint[nLength];memset(m_pData,0,nLength);m_nPos=-1;m_nCount=nLength;//用来判断栈是否满}boolCStack::isFull(){returnm_nPos==m_nCount-1;}boolCStack::isEmpty(){returnm_nPos==-1;}voidCStack::push(constint&value){if(!isFull()){m_pData[++m_nPos]=value;}}boolCStack::pop(int&value){if(isEmpty())returnfalse;value=m_pData[m_nPos--];returntrue;}CStack::~CStack(){deletem_pData;}#endif
调用方法如下:
#include<iostream>#include"stack.h"intmain(intargc,char*argv[]){CStackstack=5;stack.push(1);stack.push(2);stack.push(3);stack.push(4);stack.push(5);stack.push(6);intc=0;stack.pop(c);cout<<c<<endl;stack.pop(c);cout<<c<<endl;stack.pop(c);cout<<c<<endl;stack.pop(c);cout<<c<<endl;stack.pop(c);cout<<c<<endl;stack.pop(c);cout<<c<<endl;getchar();}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。