cstack.cpp
来自「一个C++对赋值语句的翻译,能输出四元式」· C++ 代码 · 共 89 行
CPP
89 行
// Class CStack CPP
// By Great_csk 2004
#include "CStack.h"
CStack::CStack(){
CurrentLevel=nStkMaxLevel=0;
SetMaxLevel();
pNode=0;
}
CStack::~CStack(){
Clear();
}
pData CStack::pop(){
pData tmpData;
if(pNode){
tmpData= pNode->pdata;
DeleteNode();
return tmpData;
}
return 0;
}
long CStack::push(pData pnode){
if (CreateNode()){
pNode->pdata=pnode;
return STACK_SUCCEED;
}
return STACK_OVERFOLW;
}
void CStack::Clear(){
while (DeleteNode());
}
long CStack::SetMaxLevel(long nMaxLevel){
int nOldMax;
nOldMax=nStkMaxLevel;
nStkMaxLevel=nMaxLevel;
return nOldMax;
}
bool CStack::CreateNode(){
StkNode *tmpNode;
if (CurrentLevel<nStkMaxLevel){
tmpNode=new StkNode;
tmpNode->formerNode=(void *)pNode;
pNode=tmpNode;
CurrentLevel++;
return true;
}
return false;
}
bool CStack::DeleteNode(){
StkNode *tmpNode;
if (pNode){
tmpNode=(StkNode *)pNode->formerNode;
delete pNode;
pNode=tmpNode;
CurrentLevel--;
return true;
}
return false;
}
pData CStack::getTop(){
pData tmpData;
if(pNode){
tmpData= pNode->pdata;
return tmpData;
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?