【数据结构】栈、队列、数组、列表

news2024/11/16 19:42:06

数据结构是什么?

  • 数据结构是计算机存储、组织数据的方式

是指数据相互之间是以什么方式排列在一起的。

  • 数据结构是为了更加方便的管理和使用数据,需要结合具体的业务场景来进行选择。
  • 一般情况下,精心选择的数据结构可以带来更高的运行或者存储效率。

数据结构有哪些?

image.png

学习核心 1,每种数据结构长什么样子? 2, 如何添加数据? 3,如何删除数据?


1. 栈:

方法运行的时候进栈,执行完出栈。

栈示意图:

栈的特点:后进先出,先进后出


2. 队列:


队列的特点:先进先出,后进后出


  • 笑话中体会栈和队列的特点

image.png


3. 数组:

在空间内连续
image.png
数组是一种查询快,增删慢的模型

  • 查询速度快: 查询数据通过地址值和索引定位,查询任意数据耗时相同。(元素在内存中是连续存储的)
  • 删除效率低: 要将原始数据删除,同时后面每个数据前移。
  • 添加效率极低: 添加位置 后面的每个数据后移,再添加元素。

4. 链表:

它的特点和数组的特点正好对立:
查询慢,增删效率高(相对数组)

它由一个个不同的结点连接而成: 每个结点是独立的对象,在内存内是不连续的,每个结点包含数据值和下一个结点的地址值

结构图:

  • 链表查询慢,无论查询哪个数据都要从头开始找。

  • 链表增删相对快(对比数组)

添加元素时:不用像数组那样 添加位置后面的每个数据后移,再添加元素。他会在添加位置 与 两端结点连接。 如要添加数据 B:

image.png

若此时要删除数据BD之间的数据C:

  1. 数据B对应的下一个数据地址指向数据D
  2. 数据C删除

image.png


双向链表:

单向链表只能单向查找

image.png

双向链表查找元素时 ,会先判断 离头部近 还是离尾部近,提升了查找效率

-------小结:image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1414192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

张维迎《博弈与社会》笔记(3)个体理性行为

博弈论的方法论 经济学、社会学、心理学的区别 上一节我们分析了社会的两个基本问题,从中可以发现,无论是解决协调问题还是合作问题,都需要我们对个人行为有深入认识。实际上,所有的社会科学都可看成是有关人类行为的科学&#x…

CTFshow元旦水友赛web部分题解

1.easy_include 看题目是一个文件包含题 post的内容被过滤掉.,而且开头必须是字母,但是如果想要文件包含需要file:///xxxx,这里开头就是/了,所以需要绕过,file伪协议可以用file://localhost路径让绕过开头必须是字母。 可以看…

移动Web——平面转换-平移

1、平面转换-平移 取值 像素单位数值百分比&#xff08;参照盒子自身尺寸计算结果&#xff09;正负均可 技巧 translate()只写一个值&#xff0c;表示沿着X轴移动单独设置X或Y轴移动距离&#xff1a;translateX()或translateY() <!DOCTYPE html> <html lang"en&q…

微信小程序开发 调查问卷

1. 需求 开发一个“调查问卷”的案例来学习常用表单组件的使用&#xff0c;收集用户填写胡表单信息提交给服务器&#xff0c;或者从服务器获取数据后显示在表单中。调查问卷分为单选、多选、单行填空、多行填空&#xff0c;选项为必填时候&#xff0c;提交弹出必填项未提交提示…

Redis2-事务 连接Java 整合springboot 注解缓存

一、订阅和发布 Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可以收到消息 发布订阅的代…

蓝桥杯备赛 week 4 —— DP 背包问题

目录 &#x1f308;前言&#x1f308;&#xff1a; &#x1f4c1; 01背包问题 分析&#xff1a; dp数组求解&#xff1a; 优化&#xff1a;滚动数组&#xff1a; &#x1f4c1; 完全背包问题 &#x1f4c1; 总结 &#x1f308;前言&#x1f308;&#xff1a; 这篇文章主…

联合 Maxlinear 迈凌 与 Elitestek 易灵思 - WPI 世平推出基于 FPGA 芯片的好用高效电源解决方案

近期 WPI 世平公司联合 Maxlinear 迈凌电源产品搭配 Elitestek 易灵思 FPGA 共同合作推出基于 FPGA 芯片的好用高效电源解决方案。 Elitestek 易灵思 FPGA 核心产品有 2 大系列 : Trion 系列与钛金系列。Trion 系列主要特点是 : 1. 40nm 工艺 2. 超低功耗 ( 可低至竞争对手的 …

修复idea,eclipse ,clion控制台中文乱码

控制台乱码问题主要原因并不在编译器IDE身上&#xff0c;还主要是Windows的控制台默认编码问题。。。 Powershell&#xff0c;cmd等默认编码可能不是UTF-8&#xff0c;无需改动IDE的settings或者properties&#xff08;这治标不治本&#xff09;&#xff0c;直接让Windows系统…

上位机图像处理和嵌入式模块部署(python opencv)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们谈到了qt&#xff0c;谈到了opencv&#xff0c;也谈到了嵌入式&#xff0c;但是没有说明python在这个过程当中应该扮演什么样的角色。open…

TCP的连接和关闭的那些事

一、基础概念 1、啥是TCP&#xff1f; 它是面向连接的一种协议&#xff0c;任何数据发送之前都需要建立连接。 2、TCP/IP协议的四层中那一层&#xff1f; TCP位于运输层&#xff0c;详见下图 3、TCP协议的状态机有哪些? 在链接建立和断开不同阶段都有不同的状态&#xf…

ES 分布式搜索的运行机制

ES 分布式搜索的运行机制-腾讯云开发者社区-腾讯云 ES 分布式搜索的运行机制 ES 有两种 search_type 即搜索类型&#xff1a; •query_then_fetch &#xff08;默认&#xff09;•dfs_query_then_fetch query_then_fetch query_then_fetch 1.用户发起搜索&#xff0c;请求…

RabbitMQ 笔记二

1.Spring 整合RabbitMQ 生产者消费者 创建生产者工程添加依赖配置整合编写代码发送消息 创建消费者工程添加依赖配置整合编写消息监听器 2.创建工程RabbitMQ Producers spring-rabbitmq-producers <?xml version"1.0" encoding"UTF-8"?> <pr…

SQL注入:报错注入

SQL注入系列文章&#xff1a;初识SQL注入-CSDN博客 SQL注入&#xff1a;联合查询的三个绕过技巧-CSDN博客 目录 什么是报错注入&#xff1f; 报错注入常用的3个函数 UpdateXML ExtractValue Floor rand&#xff08;随机数&#xff09; floor&#xff08;向上取整&…

海外多语言盲盒APP开发:跨越语言障碍的创新解决方案

随着全球化的加速和信息技术的迅猛发展&#xff0c;跨语言沟通的重要性日益凸显。为了满足这一市场需求&#xff0c;海外多语言盲盒APP应运而生。这一创新性的应用软件&#xff0c;旨在帮助用户跨越语言障碍&#xff0c;实现无障碍的交流与互动。 一、海外多语言盲盒APP的核心…

Python中lambda表达式的用法

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 lambda表达式本身是一个非常基础的python函数语法&#xff0c; 其基本功能跟使用def所定义的python函数是一样的&#xff0c; 只是lambda表达式基本在一行以内就完整的表达了整个函数的运算逻辑。 这里我们简单展示一些lam…

C#,恩廷格尔组合数(Entringer Number)的算法与源程序

恩廷格尔组合数&#xff08;Entringer Number&#xff09;组合数学的序列数字之一。 E&#xff08;n&#xff0c;k&#xff09;是{1&#xff0c;2&#xff0c;…&#xff0c;n1}的排列数&#xff0c;从k1开始&#xff0c;先下降后上升。 计算结果&#xff1a; 源代码&#xf…

五、Flask学习之MySQL

五、Flask学习之MySQL 1. 下载MySQL 下载教程&#xff1a;MySQL安装及可视化工具SQLyog下载 2.常用指令 2.1. 查看已有数据库 show databases;2.2. 创建数据库 create database 名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;2.3. 删除数据库 drop database 名字;…

计算机毕业设计 | SSM 凌云招聘平台(附源码)

1&#xff0c;绪论 人力资源是企业产生效益、创造利润的必不可少的、最重要的资源。人作为人力资源的个体可看作是一个承载着有效知识、能力的信息单元。这样的信息单元可看作是一个为企业产生价值和利润的个体。从而使得这样的信息单元所具有的信息就是一个有价值的信息。 校…

stripped文件描述以及gdb反汇编工具使用

往期地址&#xff1a; 操作系统系列一 —— 操作系统概述操作系统系列二 —— 进程操作系统系列三 —— 编译与链接关系操作系统系列四 —— 栈与函数调用关系操作系统系列五 —— 目标文件详解操作系统系列六 —— 详细解释【静态链接】操作系统系列七 —— 装载操作系统系列…

缓存问题 | 缓存穿透,缓存击穿,缓存雪崩

缓存穿透 关键字&#xff1a;强调缓存和数据库都没有数据并发访问 缓存穿透是指数据库和缓存都没有的数据&#xff0c;每次都要经过缓存去访问数据库&#xff0c;大量的请求有可能导致DB宕机。 应对策略&#xff1a; 使用布隆过滤器&#xff08;Bloom Filter&#xff09;&am…