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

趣味数据结构之——栈

想象一下栈是一个不透明的水桶,栈中的元素就是栈中的水。

然而,我们只能真实地看到桶最上层的水,也就是栈顶元素。也就是说其余对我们来说都是不可见的不可知的。

那么我们能够对栈这个数据结构有什么样的操作呢,或者说应该抱有什么样的期望呢?❐‿❑

首先,就是取元素,显然我们只能取最上层的元素,同理也只能查找(看到)栈顶的元素,还有存入元素和删除元素。(因为上面说过,其余的对我们来说都是不可见的,一定要牢记这一点,因为这个是我们故事的核心)◔̯◔

#include <unordered_map>// 初始化一个空的整型栈 s
stack<int> s;
// 向栈顶添加元素
s.push(10);
s.push(20);
s.push(30);// 获取栈顶元素,输出:30
cout << s.top() << endl;
// 删除栈顶元素
s.pop();
// 输出新的栈顶元素:20
cout << s.top() << endl;
//pop是取,top是看。

正可谓只要了两点还能知道什么???当然是两点确定一条直线啦!!!

于是栈长(栈的大小)我们就知道了,还有栈是不是空的。

// 检查栈是否为空,输出:false
cout << s.empty() << endl;// 获取栈的大小,输出:3
cout << s.size() << endl;

至此,我们这个故事就讲完啦。

一个关于水桶的故事,一个只能看到两个点的故事。

所以我们梳理总结一下栈都可以干什么:

可以看两个点,于是也就可以知其大小,可以观其栈顶元素可观即可操作增删查改,后进先出。

一切的一切皆因这两个点而起,So,我们定义(或者说初始化)和使用的时候,只需要定义和理会这两个点就好了——栈底和栈顶。

(甚至可以说只理会一个点就可以了,因为栈底,它就在那,它永远在那儿,直至(整个栈)世间所有全部消亡……)◉_◉

相关文章:

  • 1 Studying《Computer Vision: Algorithms and Applications 2nd Edition》1-5
  • 基于springboot的海产品交易系统
  • AI代码助手实践指南
  • 03.BUG
  • (线性代数)矩阵的奇异值Singular Value
  • 测量 Linux 中进程上下文切换需要的时间
  • python 项目利用uv管理python包依赖
  • 如何在 Ubuntu 上通过终端或在 VirtualBox 中安装 GCC
  • 大事件项目记录11-文章分类接口开发-删除文章分类
  • zookeeper Curator(3):Watch事件监听
  • c++学习(一、指针)
  • 14、ElasticSearch
  • Kioptrix Level1
  • Word之电子章制作——1
  • 计算机网络——概述
  • [特殊字符] Kolors AI中文绘画:让AI轻松“读懂”中文,创作国风新艺术
  • 【纯干货】调整word目录中的行距以及右对齐页码
  • 马斯克的 Neuralink:当意念突破肉体的边界,未来已来
  • SLAM中的非线性优化-2D图优化之零空间(十五)
  • LINUX628 NFS 多web;主从dns;ntp;samba