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;
    }
  • 相关阅读:
    AngularJS学习之旅—AngularJS 服务(八)
    Svchost进程和共享服务病毒原理
    服务劫持
    利用BHO实现浏览器劫持
    动态反调试
    常用的静态反调试技术及其规避方法
    teb, peb,seh 结构
    线程本地存储tls
    注入技术总结
    注入技术--远程线程注入
  • 原文地址:https://www.cnblogs.com/orangebook/p/3401399.html
Copyright © 2011-2022 走看看