堆栈与队列的区别

article/2025/9/29 3:38:27
开发工具与关键技术:Visual Studio 2015   堆栈与队列的区别
作者:廖 茂
撰写时间:2019年05月06日

在数据结构与算法中,有着堆栈和队列,这两种算法在我们的平时软件开发中是需要用到的,首先我们来看一下堆栈,堆栈这种算法其实是一种递归算法,首先看一下堆栈的结构,如下:
在这里插入图片描述
从图中可以看到,堆栈的两端是栈顶和栈底,栈底是封闭的,数据(a1……an)只能从栈顶入栈和出栈,那么我们就可以想到多个数据依次入栈后,出栈时第一个出栈的数据就是最后一个入栈的数据,因为栈底是封闭的,就像一叠盘子一样,只能从上往下移开,所以第一个入栈的数据最后出栈,最后入栈的数据第一个出栈。有关栈的基本运算如下:
在这里插入图片描述
栈的存储结构有两种,顺序栈和链栈,在这里讲的是顺序栈,接下来看一下顺序栈的具体运作,如下:
在这里插入图片描述

首先有一个入栈序列,有ABCDEF六个数据,然后栈有四个长度,还有一个Top指针,Top指针是指向空栈的前一个位置,即需要入栈数据的位置的前一个位置,数据入栈后指针指向入栈成功的数据,数据出栈指针就往前移,指向前一个位置,效果如下:
在这里插入图片描述
首先是入栈,可以看到A如栈后,Top指针指向A,接下来是出栈,如下:
在这里插入图片描述
可以看到,在出栈序列中有一个数据B,就是说B从栈中移出来了,然后Top指针指向A,在这里还证明了如果入栈顺序是A,B的话,那么出栈的顺序就是B,A,因为只有栈顶才能进行入栈和出栈的操作,这就是堆栈,但是如果我们想要实现数据先入的先出的话,那么就需要用到下面的队列了,如下:
在这里插入图片描述
队列中允许插入数据的一端为队尾,允许删除数据的一端为队首,数据(a1……an)从队尾入队,从队首出队,队列的存储结构和堆栈的存储结构相似,分为顺序队列和链式队列,我们这里讲的是顺序队列,我们来看一下队列的运作,如下:
在这里插入图片描述
图中front指针为队首指示器,rear为队尾指示器,然后A,B两个元素按顺序入队,每入队一个元素,队尾指示器就往后移动指向下一个空的位置,我们在看一下出队运作,如下:
在这里插入图片描述
可以看到,当元素A出队后,队首指示器往后移一个位置,前面的位置就空出来了,也证明了队列的元素先入先出,后入后出的性质。队列与堆栈的区别就在这里,堆栈的元素是先入后出,后入先出。


http://chatgpt.dhexx.cn/article/VqXGtNC3.shtml

相关文章

堆栈主要区别

【C/C】 一个由C/C编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数名,局部变量的名等。 2、堆区(heap)— 由程序员分配释放, 若程序员不释放&…

堆栈区别java总结_堆栈的区别

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 浅谈堆栈的区别 ? ? ? ? ? ?堆栈在计算机中是两种不同的数据结构:堆是队列优先,先进先出(FIFO);栈是先进后出(LIFO)的; class…

java堆栈区别

转自:http://www.iteye.com/topic/634530 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new …

php 队列和堆栈,堆栈区别

堆和栈的区别: 一、堆栈空间分配区别: 1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈; 2、堆(操作系统): 一般由程序员分配释放&…

什么是堆栈以及堆栈的区别

本文首发于公众号【程序员华仔】 ------------------ 首先说明下,这里讨论的堆和栈,是指程序内存中的“堆区”和“栈区”,并非是数据结构中所说的堆和栈。 要了解程序内存中的堆栈,需要先了解C语言的内存模型。 C语言的内存模型…

php 上传文件漏洞,【文件上传】PHP文件上传漏洞

0x01 文件上传漏洞 文件上传漏洞顾名思义就是用户上传一个可执行的脚本文件,获得了执行服务器端命令的能力。通常,文件上传是getshell最常用、最直接的方式了。但是,文件上传本身是一个正常的业务需求,因此问题在于如何安全的上传…

文件上传之图片上传题目

[A]文件上传之图片上传题目 Give me your photo PLZ 提示 我好想看一些好康的图片呜呜 题目 .htaccess是Apache的又一特色。一般来说,配置文件的作用范围都是全局的,但Apache提供了一种很方便的、可作用于当前目录及其子目录的配置文件——.htaccess&…

mysql文件上传漏洞_[转载]文件上传漏洞

文件上传漏洞 实验环境: Windows 7 X64 Phpstudy 2018 PHP 5.4.45 Apache 2.4.23 靶机项目地址:https://github.com/c0ny1/upload-labs Pass01 — JS限制 开启burp抓包,尝试上传eval.php,点击上传后页面直接提示该文件不允许上传,…

文件上传upload-lads

文件上传upload-lads 第一关 前端绕过(js) 本关是对文件名的过滤(在客户端进行) 即若文件名中存在php等后缀则直接过滤(弹窗) 上传一个webshell到服务器 但只容许上传".jpg|.png|.gif"; ".jpg|.png|.gif&quo…

上传绕过php文件改为图片,文件上传绕过(二)

基于文件后缀名的绕过 同理,我们先看源码$is_upload false; $msg null; if (isset($_POST[submit])) { if (file_exists($UPLOAD_ADDR)) { $deny_ext array(.asp,.aspx,.php,.jsp); $file_name trim($_FILES[upload_file][name]); $file_name deldot($file_nam…

文件上传思路总结

#思路总结 当遇到js前端脚本限制上传文件类型当服务器检测上传文件的MIME类型即媒体类型时文件头校验后端设置了后缀名黑名单文件解析漏洞htaccess文件大小写绕过加空格绕过加点绕过::$DATA绕过点加空格加点绕过双写绕过 后端设置了后缀名白名单当只能上传图片文件时&#xff0…

细说——文件上传漏洞(另附文件上传靶场通关记录)

目录 漏洞描述漏洞危害常见上传点和绕过方式上传点后缀绕过解析漏洞常见绕过类型 脑图漏洞在系统中的差异IIS 5.x/6.0解析漏洞Nginx 解析漏洞Apache 解析漏洞 靶场环境准备理解文件上传Pass-1-js检查【前端绕过】Pass-2-只验证Content-type【考核:MIME绕过】Pass-3-…

文件上传漏洞获取服务器,渗透测试-文件上传漏洞

声明:文中出现的ip为练习靶场,本文仅供学习,旨在学习web安全,不允许任何侵权行为 WebShell与WebShell管理工具 文件上传漏洞概述 文件上传漏洞绕过 文件上传漏洞防御 一、WebShell与WebShell管理工具 什么是WebShell webshell&…

php文件上传小结,文件上传总结

检测维度 javascript 检查没有流量产生,F12或者FireBug移除JS代码 MIME MIME检测,burp拦截后更改MIME类型 if($_FILES[userfile][type] ! "image/gif") { // check Content-type 目录路径 需要存储路径可控(或文件名完全可控) 00截断 $FilePat…

上传漏洞上传方法总结

title: 上传漏洞[汇总] copyright: true top: 0 date: 2018-07-31 22:40:47 tags: 上传漏洞 categories: 渗透测试 permalink: password: keywords: description: 对上传漏洞的大部分上传方式作总结。 最后必然失去的希望就是毒药啊。 个人对上传漏洞的理解在第一章节就说过了&…

php 文件上传抓包,详解文件上传漏洞

介绍 在现代互联网网站中,上传文件基本上是一种常见的功能,允许用户上传一些图片,视频以及其他类型的文件。如果网站出现文件上传漏洞,那么恶意用户就可以将可执行脚本程序上传到web服务器中,获得网站权限,进一步 gongji web服务器。 当上传文件时,如果服务端未对客户端…

文件上传漏洞总结

文件上传 文件上传漏洞产生的原理 文件上传漏洞是指用户通过界面上的上传功能上传了一个可执行的脚本文件,而WEB端的系统并未对其进行检测或者检测的逻辑做的不够好。 文件上传漏洞的危害 1、由于是上传的文件,所以文件由用户决定,上传we…

php 上传文件触发,PHP文件上传漏洞浅析

PHP文件上传漏洞的浅析。 文件上传简介 在一个正常的网站中,通常都会存在一些允许用户上传文件的地方。但是有一些上传功能的地方没有对用户上传的内容进行过滤,导致会上传木马到服务器并执行命令,甚至控制服务器的权限。 文件上传实现 前端代…

文件上传漏洞

文件上传漏洞 1. 文件上传功能 文件上传功能是大部分WEB应用的必备功能,站点常见文件上传点有:用户头像上传、社交类网站允许用户上传照片、服务类网站需要用户上传证明材料的电子档、电商类网站允许用户上传图片展示商品情况等。然而,看似…

java fckeditor 上传图片_java下FCKeditor上传图片问题

展开全部 先到tomcat->webapps里建立一个文件夹叫mysite。把FCKeditor里的/editor和fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml四个文件copy到mysite文件夹里,因为别的文件对我32313133353236313431303231363533e58685e5aeb931333239303264们…