zoukankan      html  css  js  c++  java
  • 链栈


    能理解这个图就OK了。

    #include <iostream>
    using namespace std;
    
    typedef int DataType;
    struct Node{
        DataType data;
        struct Node *link ;
    };
    typedef Node *PNode;
    
    struct LinkStack{
        PNode top;
    };
    typedef LinkStack *PLinkStack;
    
    PLinkStack createEmptyStack()
    {
        PLinkStack plstack = (PLinkStack) malloc (sizeof(struct LinkStack));
        if(plstack != NULL)
            plstack ->top = NULL;
        else 
            cout<<"Out of spaces
    ";
        return plstack;
    }
    
    
    int isEmpty(PLinkStack plstack)
    {
        return plstack ->top ==NULL;
    }
    
    void push(PLinkStack plstack,DataType x)
    {
        PNode p = (PNode) malloc (sizeof (struct Node));
        if(p!= NULL)
        {
            p ->data = x;
            p ->link = plstack -> top; //新元素的指针域指向栈顶元素。
            plstack -> top = p;    //新加入的元素作为栈顶。
        }
        else
            cout<<"Out of space
    ";
    }
    
    void pop(PLinkStack  plstack)
    {
        PNode  p = (PNode) malloc (sizeof(struct Node));
        if (p!= NULL)
        {
            p = plstack -> top;
            plstack ->top = plstack -> top -> link; //栈顶元素的下一个元素作为新的栈顶。
            free(p);
        }
        else
            cout<<"Empty stack
    ";
    }
    
    DataType printTop(PLinkStack plstack)
    {
        return plstack ->top ->data;
    }
    
    int main()
    {
        int n;
        cin>>n;
        int t = n;
        int item;
        PLinkStack  plstack = createEmptyStack();
    
        while(n)
        {
            cin>>item;
            push(plstack,item);
            n--;
        }
        while(t)
        {    
            cout<<printTop(plstack)<<" ";
            pop(plstack);
            t--;
        }
        system("pause");
        return 0;
    }
  • 相关阅读:
    linux 程序安装目录/opt目录和/usr/local目录的区别
    Linux文件目录结构详解
    Jenkins卸载方法(Windows/Linux/MacOS)
    Jmeter案例demo
    idea打包java可执行jar包
    查看端口状态
    轻松掌握mongodb
    sphinx和coreseek
    redis
    redis默认端口6379以其名命名,是我孤陋寡闻了,是名性感美女(梅尔兹)
  • 原文地址:https://www.cnblogs.com/tianjintou/p/4567428.html
Copyright © 2011-2022 走看看