• 栈的基本操作


    #include <stdio.h>
    #include <stdlib.h>
    
    #define STACK_INIT_SIZE 100
    #define STACKINCREMENT 10
    
    
    typedef struct{
        ElemType *base;
        ElemType *top;
        int stackSize;
    }sqStack;
    
    
    // 初始化栈
    initStack(sqStack *s){
        s->base = (ElemType *)malloc(STACK_INIT_SIZE * sizeof(ElemType) );
        if( !s->base ) {
            exit(0);
        }
        s->top = s->base;  // 最开始栈顶就是栈底
        s->stackSize = STACK_INIT_SIZE;
    }
    
    // 入栈
    Push(sqStack *s, ElemType e) {
        // 如果栈满追加空间
        if( s->top - s->base >= s->stackSize) {
            s->base = (ElemType *)realloc(s->base, (s->stackSize + STACKINCREMENT) * sizeof(ElemType));
            if ( !s->base ) {
                exit(0);
            }
            s->top = s->base + s->stackSize;
            s->stackSize = s->stackSize + STACKINCREMENT;
        }
        *(s->top) = e;
        s->top++;
    }
    
    // 出栈
    Pop(sqStack *s,ElemType *e){
        if( s->top == s->base ) // 栈空
        {
            return;
        }
        *e = *--(s->top);
    }
    int main()
    {
        printf("Hello world!
    ");
        return 0;
    }
  • 相关阅读:
    第八节 JS运动基础
    第七节 DOM操作应用-高级
    第六节 DOM操作应用
    第五讲 DOM基础
    第二节 数学基础与语言学基础
    第一节 自然语言处理概论
    第0节 课程简述
    第四节 定时器
    基本概念
    常用命令
  • 原文地址:https://www.cnblogs.com/ncuhwxiong/p/6978308.html
Copyright © 2020-2023  润新知