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

wordpress企业主题排行榜优化seo技术

wordpress企业主题排行榜,优化seo技术,网站seo快速排名优化,网站修改数据队列与堆栈:原理、区别、算法效率和应用场景的探究 前言原理与应用场景队列原理应用场景: 堆栈原理应用场景递归原理和堆栈在其中的作用递归原理堆栈作用 队列与堆栈区别队列堆栈算法效率 前言 本文主要讲解数据结构中队列和堆栈的原理、区别以及相关的…

队列与堆栈:原理、区别、算法效率和应用场景的探究

  • 前言
  • 原理与应用场景
    • 队列
      • 原理
      • 应用场景:
    • 堆栈
      • 原理
      • 应用场景
        • 递归原理和堆栈在其中的作用
          • 递归原理
          • 堆栈作用
  • 队列与堆栈区别
    • 队列
    • 堆栈
    • 算法效率

前言

本文主要讲解数据结构中队列和堆栈的原理、区别以及相关的应用方向。从图文和代码的角度进行解析。

原理与应用场景

队列

原理

先进先出的数据结构,元素从队尾入队,从队头出队。

应用场景:

任务调度:任务一般都是按序执行,基于先来先服务的概念,先放进去的任务先执行。如:操作系统进程调度、
排队系统:排队中,每个角色都是相同优先级情况下,比如说:餐厅点餐、银行办理业务、车票购买等系统,所有人都按先来先服务的概念执行。
消息传递:按照时间顺序进行消息的发送与接收,基于队列也就是先来先服务的概念。如:QQ、微信、QQ邮件。

堆栈

原理

后进先出的数据结构,元素从栈顶进入插入和删除操作。

应用场景

由于堆栈式后进先出,所以它能解决一种问题:也就是回退。如解决递归、回溯算法等。这里简单介绍其中递归算法与堆栈的关系。

递归原理和堆栈在其中的作用
递归原理

递归是一种通过在函数内部调用自身来解决问题的技术。把一个大问题拆解成有数个小问题,并逐一解决。通过不断调用自己(函数)把大问题拆解成小问题并把所有小问题的答案组合到一起最终解决大问题。

堆栈作用

递归每次调用自身时,都有一个新的地址用于存放它当前解决自身小问题的解,这个地址叫栈帧,栈帧用于存储函数的局部变量、参数、返回地址等信息。函数在不断调用自身时也就不断创造
新的栈帧,并将这些栈帧压入到堆栈中。满足条件后返回这些栈帧。

  • 存储函数调用的上下文信息,包括局部变量、参数和返回地址等。
  • 跟踪函数调用和返回的顺序,确保递归函数能够按照正确的顺序执行,并避免混乱或重复执行。
  • 限制递归的深度,防止无限递归导致程序崩溃或栈溢出。
  • 提供回退操作,使得递归函数可以从当前状态回到上一层状态,实现问题的逐步解决。

队列与堆栈区别

队列为先进先出,堆栈为先进后出。具体的我以代码和运行图形式讲解。

队列

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>#dataInput{width:100px;border:none;padding:5px 10px;border-bottom:1px solid lightgray;}#dataInput :active{border:none;}#dataInput :visited{border:none;}button{background-color: white;padding:5px 10px;border:1px solid lightgray;}.father {width: 100px;height: auto;margin: 0 auto 0 auto;}.son {width: 100px;height: 20px;border: 1px solid black;margin-right: 10px;margin: 0 auto 0 auto;text-align: center;justify-items: center;line-height: 20px;animation-duration: 3s;animation-name: slidein;}</style></head><body><div style="position: absolute;left:40%;"><input id="dataInput" type="number" aria-valuemax="10" placeholder="请输入数据" value=""><button onclick="pushs()">入队</button><button onclick="pops()">出队</button></div><div style="height:50px;"></div><div id="father" class="father"></div><script>function pushs() {let doc = document.getElementById('father')let data = document.getElementById('dataInput').valueif (data != '') {doc.insertAdjacentHTML('beforebegin', '<div id="son" class="son">' + data + '</div>')document.getElementById('dataInput').value = ''}}function pops() {document.getElementById('son').remove()}</script></body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们首先新增了一个5,这个5被压到最底下了,又点击出队,发现最开始新增的1出队了,这就叫先进先出。

堆栈

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>#dataInput{width:100px;border:none;padding:5px 10px;border-bottom:1px solid lightgray;}#dataInput :active{border:none;}#dataInput :visited{border:none;}button{background-color: white;padding:5px 10px;border:1px solid lightgray;}.father {width: 100px;height: auto;margin: 0 auto 0 auto;}.son {width: 100px;height: 20px;border: 1px solid black;border-top: none;margin-right: 10px;margin: 0 auto 0 auto;text-align: center;justify-items: center;line-height: 20px;animation-duration: 3s;animation-name: slidein;}</style></head><body><div style="position: absolute;left:40%;"><input id="dataInput" type="number" aria-valuemax="10" placeholder="请输入数据" value=""><button onclick="pushs()">push(入栈)</button><button onclick="pops()">pop(出栈)</button></div><div style="height:50px;"></div><div id="father" class="father"></div><script>function pushs() {let doc = document.getElementById('father')let data = document.getElementById('dataInput').valueif (data != '') {doc.insertAdjacentHTML('afterbegin', '<div id="son" class="son">' + data + '</div>')document.getElementById('dataInput').value = ''}}function pops() {document.getElementById('son').remove()}</script></body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
首先我们,新添加了一个5入栈,到栈顶,然后又点击出栈,会发现最后入栈的5,没有了。这就是先进后出算法。

算法效率

正常情况下都是常数时间复杂度也就是O(1),队列的查找操作的时间复杂度为O(n),而堆栈没有查找操作。

http://www.yayakq.cn/news/68528/

相关文章:

  • 福田专门做网站推广公司wordpress主题不能用
  • 福州网站建设多少钱wordpress悬浮反馈
  • 信阳做网站推广信阳网站建设wordpress 编辑主题 保存
  • 网站与网页设计教程学网页设计哪个培训学校好
  • 网页设计网站世界杯建网站安全
  • 十堰网站建设哪家专业佛山多语网站制作
  • 自助网站搭建系统基于django网站开发课设报告
  • 博优云软件官方网站如何选择网站域名
  • 做网站代理好吗长沙营销型网站建设公司
  • 做快餐料包的网站有哪些阿里云主机 多个网站
  • 新建网站怎么做关键词专业柳州网站建设
  • 建设主题网站步骤外贸网站建站用什么
  • 数据库做网站和做软件有什么不一样网站营销软件
  • 郴州网站seo咸阳北京网站建设
  • 设计一个网站需要多久搬家公司网站建设价格
  • 网站建二级目录建设网站要求
  • 做游戏网站的市场网站的代理页面怎么做的
  • 开淘宝店和自己做购物网站哪个好财经公关公司排名
  • wordpress+插件+h5广安网站seo
  • 湛江手机网站建设公司wordpress符号表情
  • 芜湖那里帮人做销售网站怎么把自己的网站放到网上
  • 网站规划在网站建设中的作用是蒲公英路由器登录地址
  • 网站设计师专业装修公司 网站模板
  • dz论坛网站创建页面临沂seo排名外包
  • 什么网站可以自己做房子设计手机上如何制作自己的网址
  • 中国林业网站群建设工程最专业的网站建设收费
  • 东莞建设网站的位置服务号网站建设
  • 地方网站类型税企互动平台
  • 网站维护托管要多少钱网络工程和软件工程
  • 网站建设存在的问题及对策陕西企业营销型网站建设