栈和队列相关

栈的顺序存储结构

复制代码
#define maxsize 50
typedef int ElemType;
typedef struct {
    ElemType data[maxsize];
    int top;
}SqStack;

顺序栈的基本算法

初始化栈

cpp 复制代码
void InitStack(SqStack *s){
    s.top=-1;
    return;
}

判断栈空

cpp 复制代码
bool IsEmptyStack(SqStack *s){
    if(s.top==-1){
        return true;
    }else{
        return false;
    }
}

进栈

cpp 复制代码
bool Push(SqStack *s,ElemType e){
    if(s.top==maxsize-1){           //栈满
        return false;
    }else{
        s.top++;
        s.data[s.top]=e;
        return true;
    }
}

出栈

cpp 复制代码
bool Pop(SqStack *s,ElemType &e){
    if(IsEmptyStack(s)){           //栈空
        return false;
    }else{
        e=s.data[s.top];
        s.top--;
        return true;
    }
}

读栈顶元素

cpp 复制代码
bool GetTop(SqStack *S,ElemType &e){
    if(IsEmptyStack(s)){           //栈空
        return false;
    }else{
        e=s.data[s.top];
        return true;
    }
}

总代码

cpp 复制代码
#include <stdio.h>

#define maxsize 50
typedef int ElemType;
typedef struct {
    ElemType data[maxsize];
    int top;
}SqStack;

void InitStack(SqStack *s){
    s.top=-1;
    return;
}

bool IsEmptyStack(SqStack *s){
    if(s.top==-1){
        return true;
    }else{
        return false;
    }
}

bool Push(SqStack *s,ElemType e){
    if(s.top==maxsize-1){           //栈满
        return false;
    }else{
        s.top++;
        s.data[s.top]=e;
        return true;
    }
}

bool Pop(SqStack *s,ElemType &e){
    if(IsEmptyStack(s)){           //栈空
        return false;
    }else{
        e=s.data[s.top];
        s.top--;
        return true;
    }
}

bool GetTop(SqStack *S,ElemType &e){
    if(IsEmptyStack(s)){           //栈空
        return false;
    }else{
        e=s.data[s.top];
        return true;
    }
}
int main() {
    return 0;
}
相关推荐
冻柠檬飞冰走茶5 分钟前
PTA基础编程题目集 7-34 通讯录的录入与显示(C语言实现)
c语言·开发语言·数据结构·算法
白白白小纯11 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
阿米亚波14 小时前
【C++ STL】std::unordered_multimap
开发语言·数据结构·c++·笔记·stl
三克的油16 小时前
数据结构-4
数据结构
05664618 小时前
Python康复训练——数据结构
数据结构·windows·python
冻柠檬飞冰走茶18 小时前
PTA基础编程题目集 7-27 冒泡法排序(C语言实现)
c语言·开发语言·数据结构·算法
noipp1 天前
推荐题目:洛谷 P5843 [SCOI2012] Blinker 的噩梦
c语言·数据结构·c++·算法·游戏·洛谷·luogu
冻柠檬飞冰走茶1 天前
PTA基础编程题目集 7-20 打印九九口诀表(C语言实现)
c语言·开发语言·数据结构·算法
红叶舞1 天前
基于线段树的数据结构
数据结构·python·算法
断点之下1 天前
从“理扑克牌”到“分组优化”——直接插入排序与希尔排序详解
数据结构·算法·排序算法