当前位置: 首页 > news >正文

【数据结构入门训练DAY-19】总结数据结构中的栈

文章目录

  • 前言
  • 一、栈的思想
  • 二、栈的解题思路
  • 结语

前言

本次训练内容:

  1. 栈的复习。
  2. 总结栈的基本操作

一、栈的思想

        在数据结构中,栈是一种很常见的算法。栈——就像你往桶里放东西似的,要取出桶内的物体就得先把桶顶的物品取出来,再依次取到桶底,所以它遵循的原则是“先进后出”;而后栈的使用也非常广泛,例如在函数调用中用于保存局部变量、在表达式求值中用于保存操作数等。

二、栈的解题思路

        栈的操作有:创建新的栈,栈的入栈操作,栈的出栈操作,判断栈空等。下面我将一一分享我对栈操作的“公式”。

        我喜欢先建立一个栈的结构体。例如下面的代码:

typedef long long SElemType;
typedef struct SqStack {//创建栈的结构体SElemType e;struct SqStack *next;
} SqStack;

        建立栈的结构体后,我就开始创建空的新栈。例如下面的代码:

void InitStack(SqStack* &S) {//创建空栈S = nullptr;
}

        创建好空栈后意味着我们可以对它进行添加和删除操作了。首先我先写入栈操作;栈未满时,则可以插入元素,将栈顶指针上移,并再将需要插入的元素赋值给栈顶。例如下面的代码:

bool Push(SqStack &S, SElemType e) {//入栈操作S.next++;S.data[S.next] = e;return true;
}

        写完入栈操作接着的就是出栈操作。它的思想就是,先判断非空,栈在非空的情况下,栈顶指针依次下移,栈内元素不断被弹出,直到栈空。例如下面的代码:

bool Pop(SqStack* &S, SElemType &e) {//出栈操作if (S == nullptr) {return false;}SqStack* temp = S;e = temp->e;S = S->next;delete temp;return true;
}

        紧接的我们跟上判断栈空的操作。它的操作书写就更简单,只需要判断栈是否等于null即可。例如下面的代码:

bool SqStackEmpty(SqStack* S) {//判断是否为空栈return S == nullptr;
}

        然后还有一个就是判断栈顶元素的。它的思想就是让栈指针保持指向栈顶即可。

int Top(SqStack* &S )
{int t; //为判断是否为栈顶元素做准备 if (s.top == -1) return -1; //栈空t= s.data[s.top]; //栈非空,不断更新指针位置return t; //返回栈顶的值
}

结语

        今晚算是对这段时间写栈的题目进行的一次总结。在复习使用栈的操作时,我也经常使用STL里的类似逻辑进行拓展学习。STL的使用效率往往比原理快,但是原理是对栈概念的理解和支撑。所以我在使用高效率的代码时,就也会把原理逻辑补充上去,方便往后复习能更好的理解。

相关文章:

  • OkHttp入门
  • python——函数
  • EMQX学习笔记
  • CCF-GESP认证的学习资源与知识点详细指南
  • (mamba_ssm)安装踩坑指南
  • 远程桌面-文件传输
  • ECMAScript
  • STM32——相关软件安装
  • GPU虚拟化实现(一)
  • 矩阵-螺旋矩阵
  • Kafka 如何理解Kafka的高可用
  • 从本地存档到协作开发的Git简单使用
  • 解决go项目构建后不能夸Linux平台的问题
  • 使用IntersectionObserver实现目标元素可见度的交互
  • Franka机器人ROS 2来袭:解锁机器人多元应用新可能
  • [密码学基础]商用密码应用安全性评估(密评):网络安全新风口,高薪紧缺人才必备技能
  • 本地搭建一个简易版本的 Web3 服务
  • 2025年世界职业院校技能大赛实施方案(意见稿)
  • 讯联桌面TV版apk下载-讯联桌面安卓电视版免费下载安装教程
  • 【25软考网工笔记】第三章 局域网(1)CSMA/CD、二进制指数退避算法、最小帧长计算
  • “女硕士失踪13年生两孩”案进入审查起诉阶段,哥哥:妹妹精神状态好转
  • 重庆市委原常委、政法委原书记陆克华被决定逮捕
  • 广西壮族自治区党委政法委副书记李文博接受审查调查
  • 农行深圳市分行原副行长王国彪涉嫌严重违纪违法被查
  • 《淮水竹亭》:一手好牌,为何打成这样
  • 苹果或将于2027年推出由玻璃制成的曲面iPhone