1. 程式人生 > >C++ 鏈棧 基本演算法實現

C++ 鏈棧 基本演算法實現

C++ 鏈棧 基本演算法實現

#ifndef LinkStack_h
#define LinkStack_h
#include <iostream>
template <class T>
struct Node{
    T data;
    struct Node <T> * next;
};
template <class T>
class LinkStack{
public:
    LinkStack() {top = NULL;}
    ~LinkStack();
    void Push (T x);
    T Pop();
    T GetTop();
    
bool Empty() { return (NULL == top)? true:false;} private: struct Node <T> *top; }; template <class T> void LinkStack<T>::Push (T x){ struct Node <T> * p = new Node <T>; p->data = x; p->next = top; top = p; } template <class T> T LinkStack
<T> :: Pop(){ if(Empty()) throw "下溢"; T x = top->data; struct Node <T> * p = top; top = top->next; delete p; return x; } template <class T> LinkStack<T>::~LinkStack(){ while(top){ struct Node <T> *p = top; top = top-> next;
delete p; } } template <class T> T LinkStack<T>::GetTop(){ if(Empty()) throw "溢位"; return top->data; } #endif /* LinkStack_h */