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

互联网最好的公司上海优化公司

互联网最好的公司,上海优化公司,网站主页用ps做,台州市住房和城乡建设规划局网站🌈个人主页:聆风吟 🔥系列专栏:算法模板、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. ⛳️模拟栈1.1 🔔用数组模拟实现栈1.1.1 👻栈的定义1.1.…

在这里插入图片描述
🌈个人主页:聆风吟
🔥系列专栏:算法模板、数据结构
🔖少年有梦不应止于心动,更要付诸行动。


文章目录

  • 📋前言
  • 一. ⛳️模拟栈
    • 1.1 🔔用数组模拟实现栈
      • 1.1.1 👻栈的定义
      • 1.1.2 👻向栈顶插入一个数 x(进栈操作)
      • 1.1.3 👻从栈顶弹出一个元素(出栈操作)
      • 1.1.4 👻判断栈是否为空
      • 1.1.5 👻查询栈顶元素
    • 1.2 🌟模板提取(重点)🌟
  • 二. ⛳️题目练习
    • 2.1 题目
    • 2.2 输入样例
    • 2.3 输出样例
    • 2.4 c++代码
  • 📝结语

📋前言

    💬 hello! 各位铁子们大家好哇,我们上期已经学习了双链表的算法模板,不知道大家都已经掌握了吗?如果你还有缺漏可以通过下面专栏自行跳转学习,今天作者又又又给大家带来了栈的算法模板详细讲解,让我们一起加油进步。
    📚 系列专栏:本期文章收录在《算法模板》,大家有兴趣可以浏览和关注,后面将会有更多精彩内容!
    🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝



一. ⛳️模拟栈

1.1 🔔用数组模拟实现栈

1.1.1 👻栈的定义

    栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。如下图是栈的示意图:
在这里插入图片描述

1.1.2 👻向栈顶插入一个数 x(进栈操作)

    根据栈的定义可知,我们可以将数组看作是横放的栈的示意图,即将数组的首元素位置看作栈底、当前元素的位置看作栈顶,便可以实现数组模拟栈的相关操作。如果我们要向栈顶插入一个元素,将栈顶指针向后移动一位将元素插入进去即可。如下图所示:
在这里插入图片描述
代码展示(建议结合图示看注释):

//top表示栈顶
int stk[N], top = -1;// 向栈顶插入一个数x
stk[++top] = x;

1.1.3 👻从栈顶弹出一个元素(出栈操作)

    根据上面所知,如果我们要从栈顶弹出一个元素,我们只需要将栈顶指针向前移动一位即可。如下图所示:
在这里插入图片描述
代码展示(建议结合图示看注释):

// 从栈顶弹出一个数
top--;

1.1.4 👻判断栈是否为空

    根据上面所知,如果我们要判断栈是否为空,我们只需要判断栈顶指针是否指向数组首元素左边的位置(即判断top是否等于-1位置)。如下图所示:
在这里插入图片描述
代码展示(建议结合图示看注释):

// 判断栈是否为空,如果 top >= 0,则表示不为空
if (top >= 0)
{//输出栈不为空	
}
else
{//输出栈为空
}

1.1.5 👻查询栈顶元素

    根据下图所示,查询栈顶元素只需要输出数组下标为top的值即可;
在这里插入图片描述
代码展示(建议结合图示看注释):

// 栈顶的值
stk[top];

1.2 🌟模板提取(重点)🌟

C++代码:

// top表示栈顶
int stk[N], top = -1;// 向栈顶插入一个数x
stk[++top] = x;// 从栈顶弹出一个数
top-- ;// 栈顶的值
stk[top];// 判断栈是否为空,如果 top >= 0,则表示不为空
if (top >= 0)
{//输出栈不为空	
}
else
{//输出栈为空
}


二. ⛳️题目练习

⌈ 在线OJ链接,可以转至此处自行练习 ⌋

2.1 题目

在这里插入图片描述

2.2 输入样例

10
push 5
query
push 6
pop
query
pop
empty
push 4
query
empty

2.3 输出样例

5
5
YES
4
NO

2.4 c++代码

#include <iostream>using namespace std;const int N = 100010;
int stk[N], top = -1;int main()
{int m = 0;cin >> m;while(m--){string s;cin >> s;if(s == "push"){//在栈顶插入一个元素int x = 0;cin >> x;stk[++top] = x;}else if(s == "pop"){//从栈顶弹出一个元素top--;}else if(s == "empty"){//判断栈是否为空cout << (top >= 0 ? "NO":"YES" ) << endl;}else{//查询栈顶元素cout << stk[top] << endl;}}return 0;
}


📝结语

     本文主要讲解栈的定义、使用数组模拟实现栈的相关操作:向栈顶插入一个数x、从栈顶弹出一个元素、判断栈是否为空、查询栈顶元素,通过栈相关操作的讲解最终我们提取出了栈的算法模板,并通过一个题目的练习结束了今天的课程。希望大家课下能够多敲多练,孰能生巧。

     今天的干货分享到这里就结束啦!如果觉得文章还可以的话,希望能给个三连支持一下,聆风吟的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的最大动力!
在这里插入图片描述

http://www.zhongyajixie.com/news/14958.html

相关文章:

  • 老网站绑定新网站如何做?南通网站快速收录
  • 公司响应式网站建设报价百度一下百度一下你就知道
  • 网站备案靠谱吗百度seo关键词排名优化
  • 温州 做网站关键词密度查询站长工具
  • 顺德公司做网站网站运营公司
  • 建设网站预算网站推广方案策划
  • 彩票网站开发的搜索引擎排名查询
  • 网站页面相似度查询工具哪家网络推广好
  • 网站电脑端和手机端百度快照首页
  • 展会搭建设计案例网站网站seo分析
  • 企业查询官方网站拼多多关键词怎么优化
  • 昆明hph网站建设seo属于什么职位类型
  • 东莞有哪些做推广的网站推广渠道
  • 哈尔滨网站建设信息学校教育培训机构
  • 乡村旅游电子商务网站建设百度公司图片
  • 房产网站排行北京自动网络营销推广
  • 广州网站开发 英诺科技搜索百度网页版
  • 常德做网站公司万网域名查询工具
  • 陕西网站建设的内容竞价推广托管开户
  • 用ps如何做网站首页seo搜索引擎优化服务
  • 宿迁企业网站设计迅雷下载磁力天堂
  • 公司 网站建设 会计科目什么是seo是什么意思
  • 企业网站的建立之前必须首先确定网页推广怎么收取费用
  • 深圳网站建设公司网络营销师证书查询
  • 用二级域名做网站免费正规大数据查询平台
  • 网站的线下推广怎么做的谷歌浏览器下载手机版官网
  • 做网站需要学什么语言百度应用平台
  • 域名有了怎么建网站seo平台是什么
  • 网站建设委托建设合同建立自己的网站
  • 如何制作简单网站seo关键词排名软件流量词