zoukankan      html  css  js  c++  java
  • C++_template_栈的链式存储及实现

    由于在C++数据结构中的代码不完整,特补全。等日后当工程库调用。

    若有疑问,请留言.

    #include<iostream>
    using namespace std;
    template<class T>
    struct Node
    {
        T data;
        Node<T> *next;
    };
    
    template <class T>
    class LinkStack
    {
    private:
        Node<T> *top;
    public:
        LinkStack(){top=NULL;}
        ~LinkStack();
        void Push(T x);
        void Pop();
        T GetTop();
        int StackEmpty();
        void ClearStack();
        void StackTranverse();
    };
    
    template<class T>
    LinkStack<T>::~LinkStack()
    {
        Node<T> * q;
        while(top)
        {
            q=top;
            top=top->next;
            delete q;
        }
    }
    /****************链栈的入栈*******************/
    template<class T>
    void LinkStack<T>::Push(T x)
    {
        Node<T> * s;
        s=new Node<T>;
        s->data=x;
        s->next=top;
        top=s;
    }
    /*************链栈的出栈***********************/
    template<class T>
    void LinkStack<T>::Pop()
    {
        Node<T> *p;
        if(top==NULL) throw "underflow";
        p=top;
        top=top->next;
        cout<<p->data<<"已经被删除"<<endl;
        delete [] p;
    }
    
    /*****元素X入栈********/
    template<class T>
    T LinkStack<T>::GetTop()
    {
        return top->data;
    }
    
    /**********判断栈是否为空************/
    template<class T>
    int LinkStack<T>::StackEmpty()
    {
        if(top->next==NULL)
            return 1;
        return 0;
    }
    
    /****************清空栈********************/
    template<class T>
    void LinkStack<T>::ClearStack()
    {
        Node<T> * q;
        while(top)
        {
            q=top;
            top=top->next;
            delete q;
        }
    }
    
    /********************遍历输出栈中元素************/
    template<class T>
    void LinkStack<T>::StackTranverse()
    {
    
        Node<T> * temp;temp=top;
        while(temp)
        {
            cout<<temp->data<<" ";
            temp=temp->next;
        }
        cout<<endl;
    }
  • 相关阅读:
    js动态添加、删除行
    java内存问题排查及分析
    IDE 热部署配置
    Target JRE version (1.7.0_79) does not match project JDK version (java version "1.8.0_171"), will use sources from JDK: 1.7
    快速排序
    归并排序思想
    算法总结
    百度2013校园招聘笔试题(含整理的答案)
    浙江省委书记(习):加快推进节约型社会建设
    申论方面的经验
  • 原文地址:https://www.cnblogs.com/orangebook/p/3401399.html
Copyright © 2011-2022 走看看