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

📄 cstack.cpp

📁 一个C++对赋值语句的翻译,能输出四元式
💻 CPP
字号:
// 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -