博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++实现链式堆栈
阅读量:6527 次
发布时间:2019-06-24

本文共 1349 字,大约阅读时间需要 4 分钟。

practice2.h文件

#ifndef PRACTICE2_H_INCLUDED#define PRACTICE2_H_INCLUDEDtemplate
class LinkedStack;template
class ChainNode//栈里面的每个节点{ friend class LinkedStack
;private: T data; ChainNode
*link; ChainNode(const T& theData,ChainNode *n=0):data(theData),link(n) {}};template
class LinkedStack{public: LinkedStack():top(0) {} ~LinkedStack() {MakeEmpty();} bool IsEmpty() const; T& Top() const; void Push(const T& e); void Pop(); void MakeEmpty();private: ChainNode
*top;};template
bool LinkedStack
::IsEmpty() const{ return top==0;}template
void LinkedStack
::Push(const T &e){ top=new ChainNode
(e,top);}template
T& LinkedStack
::Top() const{ if(this->IsEmpty()) { throw "Stack is Empty"; } return top->data;}template
void LinkedStack
::Pop(){ if(this->IsEmpty()) throw"is Empty"; ChainNode
*delNode=top; top=top->link; delete delNode;//如果不删除的话会产生内存泄漏 和push的new对应}template
void LinkedStack
::MakeEmpty(){ while(!IsEmpty()) Pop();}#endif // PRACTICE2_H_INCLUDED

practice1.cpp

#include
#include "practice2.h"using namespace std;int main(){ LinkedStack
s; s.Push(10); cout<
<

 

转载于:https://www.cnblogs.com/libin123/p/10420129.html

你可能感兴趣的文章
MySQL在导入的时候遇到的错误
查看>>
存储初创公司Datera带着Amazon EBS走出隐身模式
查看>>
北大访问教授吴霁虹:如何把握AI产业化机遇并建立竞争优势 | CITE 2017
查看>>
LINUX 常用命令整理
查看>>
【云周刊】第134期:阿里云发布ECS企业级产品家族 19款实例族涵盖173个应用场景...
查看>>
iOS 位枚举
查看>>
关注ERP之根,基础数据的准备
查看>>
中兴计划2017年泰国收入实现50%的增长
查看>>
德国禁止Facebook利用WhatsApp用户信息:没法律基础
查看>>
全球太阳能产业掣肘在哪儿?
查看>>
“灾备全生态”全揭秘
查看>>
CSS盒子模型
查看>>
Zeppelin Prefix not found.
查看>>
ubuntu中eclipse安装svn插件问题
查看>>
linux 的网络设置
查看>>
首届“欧亚杯”象翻棋全国团体邀请赛圆满收评!
查看>>
编译tomcat
查看>>
最简单 iText 的 PDF 生成方案(含中文解决方案)HTML 转为 PDF
查看>>
MySql中is NULL、ISNULL()和IFNULL()运行速度的比较
查看>>
关于unichar字符串的初始化
查看>>