栈 C++实现

原创 2007年09月11日 23:17:00

先后写了栈的Java ,C实现,今天又上数据结构课,机房的环境是C++。本以为C和Java都没问题了,C++岂不是手到擒来?结果一写就出错,而且是一大堆错,郁闷~
缠着老师问了问,回家再埋头修炼,写了C++版链栈

程序清单:Stack.h        StackTest.cpp
程序实现:依次将0~19而是个数压栈,再依次出栈并输出

Stack.h 

/* Stack.h */
/* Coding by nyzhl */
template 
<class T>
class StackNode {
    
public:
        T data;
        StackNode 
*next;
}
;

template 
<class T>
class Stack {
    
public:
        Stack(
void):top(NULL) {}
        
bool IsEmpty(voidconst return top==NULL;}
        
void Push(const T data);
        
bool Pop(T *data);
        
bool Peek(T *data) const;
    
private:
        StackNode
<T> *top;
}
;

template 
<class T>
void Stack<T>::Push(const T data) {
    StackNode
<T> *node = new StackNode<T>();
    node
->data = data;
    node
->next = top;
    top 
= node;
}


template 
<class T>
bool Stack<T>::Peek(T *data) const {
    
if(IsEmpty()) return false;
    
*data = top->data;
    
return true;
}


template 
<class T>
bool Stack<T>::Pop(T *data) {
    
if(IsEmpty()) return false;
    
*data = top->data;
    StackNode
<T> *node = top;
    top 
= top->next;
    delete(node);
    
return true;
}

 

StackTest.cpp

/* StackTest.cpp */
/* Coding by nyzhl */
#include 
<stdio.h>
#include 
"Stack.h"

void main() {
    Stack
<int> *= new Stack<int>();
    
for(int i=0; i<20; i++ )
        s
->Push (i);
    
int num;
    
while(!s->IsEmpty()) {
        s
->Pop(&num);
        printf(
"%d ",num);
    }

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

财金速递(tockxp) v2.5 build 518 下载

Welcome to my blog!财金速递(tockxp) v2.5 build 518 软件大小:1199 KB软件语言:简体中文软件类别:国产软件 / 共享版...

成幻Online Judge 1.00 Beta 2 发布 [2007.7.9 7:37]

升级内容解决一些版本的操作系统的IIS服务兼容性问题。 增加了全Div/CSS可编辑性。 成幻Online Judge 介绍 成幻Online Judge是一套优秀的免费在线评判系统的整站程序。 ...

漫漫开源路

近日写了一个提案,建议所在公司的软件产品走开源之路。在我看来,开源好处很多,一方面能够通过开源,感兴趣的人共同参与、讨论、开发,完善、提高产品功能、质量,娱人娱己;另一方面,公司可以借开源商业之路,为...

Java8 创建Stream的几种方法

Stream的静态方法 of 可以将数组转换为Stream//Stream.of(T... values) 参数为一组数组String[] strings = { "java", "js", "ang...

bean之间的复制!BeanUtils.copyProperties、set、BeanCopier还有spring中的BeanUtils.copyProperties之间的区别

我们一般对进行web开发,在进行对form里的属性值跟实体类复制时,我们大概用到了几种方法,一般常见的set进行复制,   struts自带的BeanUtils.copyProperties、spri...

这七句话被中国人误传了数千年

在中国崇尚权威的文化氛围中,名人名言占的地位是很重的,很多名家说的话,往往被人民当成指导自己人生观世界观的不二准则,但这些几千年流传下来的名言中,也有一些话被人刻意或无知地曲解,背离了话语者本身的意旨...
  • CSDN_0
  • CSDN_0
  • 2007-06-22 13:02
  • 1167

基于NeHe第十九课做的粒子系统

可以实现各种喷射状的运动状态,按上下左右键分别移动粒子,按y键切换颜色,按7、8、9、0切换不同的纹理,按1、2改变粒子速度、按3、4改变粒子大小ParticleSys.h// ParticleSys...

侯捷先生谈程序员与编程

急功近利是大忌 一位读者写信给我,说他非常着急。他一个月挣300元人民币,家里情况又不好。他希望赶快把 VC/MFC 学会,进入 IT 产业挣钱。信写得很长,看着看着,我也不禁为他着急起来。 有许多读...

2011 新品秋装新款时尚女装女款 韩版长袖气质配腰带连衣裙 03363

促销价格 : 49.0 元 掌柜 : ghiso 信用 : 30天累计售出 : 件 宝贝与描述相符 : 4.6低于2.73% 卖家的服务态度 : 4.7低于1.53% 卖家发货的速度 :...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)