zoukankan      html  css  js  c++  java
  • C/C++(数据结构栈的实现)

    栈的实现

    特点FILO(先进后出)

    假设栈的空间为8
    top == 0 不能出栈,已到栈底
    top == 8 不能入栈,已到栈顶
    top始终指向一个待插入的位置
    push操作,1.写入数据,2.top++ 3.前提条件是栈非满
    pop操作,1.top--,2.弹出数据 3.前提条件是栈非空

    #include<stdio.h>
    
    //需要一个连续的空间
    typedef struct _Stack{
        char mem[1024];
        int top;
    }Stack;
    
    Stack s;
    //判断栈是否为满
    int isFull(Stack *ps) {
        return ps->top == 1024;//ps-> == 1024时为真,返回1,也就是满的时候返回真
    }
    //判断栈是否为空
    int isEmpty(Stack *ps) {
        return ps->top == 0;//ps->top == 0;的时候为空栈
    }
    //入栈操作
    void push(Stack *ps,char ch) {
        ps->mem[(ps->top)++] = ch;//先让ps.mem的指针ps.top++然后赋值
    }
    //出战操作
    char pop(Stack *ps) {
        return ps->mem[--(ps->top)];//先对ps.mem的指针--,并且返回
    }
    
    int main() {
        Stack s = {{0},0};
        for(char ch = 'a';ch <= 'z';ch++) {
            if(!isFull(&s))
                push(&s,ch);
        }
        while(!isEmpty(&s)) {
            putchar(pop(&s));//弹出
            puts(" ");
        }
    }
    /*
    z
    y
    x
    w
    v
    u
    t
    s
    r
    q
    p
    o
    n
    m
    l
    k
    j
    i
    h
    g
    f
    e
    d
    c
    b
    a
    */
    
  • 相关阅读:
    个人总结
    第二次冲刺 10
    第二次冲刺 09
    第二次冲刺 08
    第二次冲刺 07
    团队冲刺第七天
    团队绩效评估
    团队冲刺第六天
    团队冲刺第五天
    团队冲刺第四天
  • 原文地址:https://www.cnblogs.com/intelwisd/p/8343794.html
Copyright © 2011-2022 走看看