zoukankan      html  css  js  c++  java
  • 栈的链式存储结构及其基本运算实现

    #include <iostream>
    #include <malloc.h>
    using namespace std;
    
    typedef struct linknode
    {
        int data;
        struct linknode *next;
    }Listack;
    
    //初始化栈
    void init(Listack *&s)
    {
        s=(Listack*)malloc(sizeof(Listack));
        s->next=NULL;
    }
    //摧毁栈
    void destroy(Listack *&s)
    {
        Listack *p=s,*q=s->next;
        while(q!=NULL)
        {
            free(p);
            p=q;
            q=q->next;
        }
        free(p);
    }
    //判断栈是否为空
    bool empty(Listack *s)
    {
        return s->next==NULL;
    }
    //进栈
    void push(Listack *&s,int e)
    {
        Listack *q;
        q=(Listack*)malloc(sizeof(Listack));
        q->next=s->next;
        q->data=e;
        s->next=q;
    }
    //出栈
    void pop(Listack *&s)
    {
        if(s->next==NULL)
        {
            cout<<"栈为空,不能删除!";
            return;
        }
        Listack *p;
        p=s->next;
        s->next=p->next;
        free(p);
    }
    //取栈顶元素
    int top(Listack *&s)
    {
        if(s->next==NULL)
        {
            cout<<"栈为空,无元素!";
            return 0;
        }
        Listack *p;
        p=s->next;
        return p->data;
    }
    
    
    int main()
    {
        Listack *s;
        init(s);
        push(s,2);
        push(s,4);
        cout<<top(s)<<endl;
        pop(s);
        cout<<top(s)<<endl;
        return 0;
    }
    

  • 相关阅读:
    Nacos 1.4.0 集群搭建
    docker mysql5.7
    java设计模式之简单工厂模式
    关于兑现
    Linux用户相关
    centos7开机自启动
    Shell脚本记录日志到文件
    .NetCore常用单元测试框架
    Exchange邮件开发
    Spark——Yarn模式下的日志存储及配置
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697938.html
Copyright © 2011-2022 走看看