• C语言实现顺序栈


    #include <stdio.h>
    #include <stdlib.h>
    
    #define max_size 100
    typedef int SElemType;
    
    typedef struct {
        SElemType *base;
        SElemType *top;
        int stacksize;
    }SqStack;
    
    //初始化
    int InitSqStack(SqStack &S){ S.base = (SElemType *)malloc(max_size *sizeof(SqStack)); if (!S.base){ printf("memory error"); return 0; } S.top = S.base; S.stacksize = max_size; printf("init success \n"); return 0; }
    //空栈判断
    int Empty(SqStack S){ if (S.base == S.top){ printf("empty stack\n"); return 0; } }
    //求栈长
    int SqStackLength(SqStack S){ printf("length is %d\n",S.top-S.base); return 0; }
    //入栈
    int Push(SqStack &S, SElemType e){ if (S.top - S.base == max_size) return 0; *S.top = e; S.top ++; return 0; }
    //出栈
    int Pop(SqStack &S){ if (S.top == S.base) return 0; S.top--; printf("pop data is %d\n",*S.top); return 0; }
    //获取所有元素
    int GetElem(SqStack S){ while(S.base!= S.top){ printf("data is %d\n",*S.base); S.base ++; } return 0; }

    //清空栈
    int ClearSqStack(SqStack &S){ if (S.base){ S.top = S.base; } return 0; }
    //删除栈
    int DeleteSqStack(SqStack &S){ if (S.base){ free(S.base); S.base = S.top = NULL; } return 0; } int main(){ SqStack S; InitSqStack(S); for (int i=0;i<10;i++){ Push(S,i+1); } Pop(S); Pop(S); // ClearSqStack(S); DeleteSqStack(S); GetElem(S); Empty(S); SqStackLength(S); return 0; }
  • 相关阅读:
    leetcode-滑动窗口
    leetcode刷题-双指针
    nlp
    机器学习
    tf-idf算法
    RNN和LSTM的理解
    DDD落地实践-战术实现心得
    DDD落地实践-战略设计心得
    测试平台系列(66) 数据驱动之基础Model
    Python小知识之对象的比较
  • 原文地址:https://www.cnblogs.com/Pynu/p/16267611.html
Copyright © 2020-2023  润新知