zoukankan      html  css  js  c++  java
  • 数据结构4_链栈

    用指针方式实现栈,相对于顺序栈,指针方式不用指定栈的大小,
    先定义一个栈节点类,再定义一个链栈类,为使链栈类能访问栈节点的元素,设链栈类为栈节点类的友元类。

    #include<iostream>
    using namespace std;
    class LinkStack;
    class StackNode   //设计每个节点的类型
    {
        char *data;
        StackNode *next;
        friend class LinkStack;   //设置友元类,以便LinkStack类访问其元素
    };
    class LinkStack
    {
        StackNode *top;
    public:
        LinkStack()
        {
            top=NULL;
        }
        int stackempty()  //判断是否空栈
        {
            return top==NULL;
        }
        void push(char *e)//入栈
        {
            StackNode *q;
            q=new StackNode;
            q->data=new char(sizeof(e)+1);
            strcpy(q->data,e);
            q->next=top;   //q的下一个节点指向顶栈
            top=q;         //顶栈指针指向当前指针;西电用教材中c代码出错
        }
        void pop(char *&e)
        {
            StackNode *q=top;
            if(stackempty())
            {
                cout<<"stack underflow"<<endl;
                return;
            }
            e=new char(sizeof(q->data)+1);
            strcpy(e,q->data);
            top=q->next;
            delete q;
        }
        void show()    //栈的显示
        {
            StackNode *q=top;
            while(q!=NULL)
            {
                cout<<q->data<<endl;
                q=q->next;
            }
        }
    };

    void main()
    {
        LinkStack a;
        a.push("sb");
        a.push("test");
        a.push("stack");
        char *e;
        a.pop(e);
        cout<<"pop is:  "<<e<<endl;
        a.push("link");
        a.show();

    }




  • 相关阅读:
    HDU_5372 树状数组 (2015多校第7场1004)
    《 字典树模板_递归 》
    《神、上帝以及老天爷》
    《Crazy tea party》
    UVA_ Overflow
    UVA_If We Were a Child Again
    UVA_Product
    UVA_Integer Inquiry
    你也可以屌到爆的这样敲代码当黑客!
    大数相加_原创
  • 原文地址:https://www.cnblogs.com/zhuangwy-cv/p/3737825.html
Copyright © 2011-2022 走看看