美文网首页
栈的基本概念

栈的基本概念

作者: TPEngineer | 来源:发表于2021-06-12 11:44 被阅读0次

栈是只允许在一端进行插入或删除操作的线性表。

栈的逻辑结构和线性表一样。

01 顺序栈

顺序栈由两部分组成,第一部分是静态数组,存放栈中的元素,第二部分是栈顶指针。

初始化栈

void InitStack(SqStack &S) {

    S.top  = -1;

}

判断栈空

bool StackEmpty(SqStack S) {

    return S.top == -1;

}

进栈

bool Push(SqStack &S, ElemType x) {

    // 判断栈是否存满,注意下标是从0开始的。

    if(S.top == MaxSize-1) 

        return false;

    S.top = S.top + 1;

    S.data[S.top] = x;

    return true;

}

出栈

bool Pop(SqStack &S, ElemType &x) {

    if(S.top == -1) 

        return false;    

    x = S.data[S.top];

    S.top = S.top - 1;

    return true;

}

读栈顶元素

bool GetTop(SqStack S, ElemType &x) {

    if(S.top == -1) 

        return false;

    x = S.data[S.top];

    return true;

}

02 共享栈

两个栈共享同一片内存,从两边往中间增长。

初始化的时候,top0 == -1,top1 == MaxSize。

而栈满条件为 top0 + 1 == top1 。

03 链栈

链栈的定义

typedef struct Linknode {

    ElemType data;

    struct Linknode *next;

} *ListStack;

相关文章

  • 《数据结构》第三章:栈和队列

    3.1.1栈的基本概念 3.1.2栈的顺序存储实现 3.1.3栈的链式存储实现 3.2.1队列的基本概念 3.2....

  • 数据结构

    知识点:堆栈,队列,排序算法 堆栈: 一.基本概念: 栈顶,栈底,出栈(pop),入栈(push),空栈 1.堆栈...

  • C++-栈-Stack的语法呀2020-06-14

    栈 基本概念 属于数据结构的知识。LIFO,即last-in-fist-out。 核心语法 包头 进栈,出栈,读出...

  • Java数据结构和算法系列———栈

    目录 1、栈的基本概念2、Java模拟简单的顺序栈实现3、增强功能版栈4、利用栈实现字符串逆序5、利用栈判断分隔符...

  • C# 值类型与引用类型

    基本概念 区别 线程栈与托管堆 Stack 栈:线程栈,由操作系统管理,存放值类型、引用类型变量。栈是基于线程的,...

  • 数据结构(三)栈和队列

    3.1 栈 3.1.1 栈的基本概念 栈是只允许在一端进行插入或删除的数据表 栈顶:允许插入和删除的一端 栈底:不...

  • Block详解

    block 一、前期准备知识 1.1 堆与栈基本概念1.2 终端与clang编译常用命令 1.1 堆与栈简介: 栈...

  • 栈的基本概念

    栈是只允许在一端进行插入或删除操作的线性表。 栈的逻辑结构和线性表一样。 01 顺序栈 顺序栈由两部分组成,第一部...

  • 栈的概念及性质

    栈的基本概念 栈的定义 栈是一种只能在一端进行插入或删除的线性表。其中插入被称作进栈,删除被称作出栈。 允许进行插...

  • 考研数据结构笔记——3.栈

    栈 栈的基本概念 栈是一种只允许在一段进行插入或者删除操作的线性表;因此,栈有着后进先出的特性 栈是一种线性表 这...

网友评论

      本文标题:栈的基本概念

      本文链接:https://www.haomeiwen.com/subject/fxuueltx.html