&*焰火*&天堂

赵洪亮 's Blog - - - - 路漫漫其修远兮,吾将上下而求索。

栈 C++实现

先后写了栈的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);
    }

}
阅读更多
个人分类: C / C++
想对作者说点什么? 我来说一句

数据结构之栈——C++实现

2011年04月16日 595KB 下载

C++实现栈源代码

2016年09月15日 1KB 下载

没有更多推荐了,返回首页

不良信息举报

栈 C++实现

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭