• 链栈



    能理解这个图就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;
    }
  • 相关阅读:
    System.arraycopy()的用法?
    Java当中“+=”和“=+”的区别
    jsp FN 标签库的使用方法
    手作编辑画面处理
    mpfu 位编辑处理?
    5/14 自动跟新 位数编集 百分号添加 手作部品。
    jsp 4-14 知识总结
    jstl split 分割字符串?
    aws vpc 知识总结(助理级)
    典型的软件自动化测试框架
  • 原文地址:https://www.cnblogs.com/tianjintou/p/4567428.html
Copyright © 2020-2023  润新知