Day14-集合(二)--什么是数据结构

什么是数据结构

计算机存储和组织数据的方式

数据结构概述

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

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

  • 数据结构是为了更加方便管理和使用数据,需要结合具体的业务场景来进行选择

  • 精心选择的数据结构可以带来更高的运行或者存储效率

  • 常见数据结构

    • 队列

    • 数组

    • 链表

    • 二叉树

    • 二叉查找树

    • 平衡二叉树

    • 红黑树

特点:后进先出,先进后出(弹夹)(一端开口)

数据进入栈模型的过程的称为:压栈/进栈

数据离开栈模型的过程的称为:弹栈/出栈

队列

特点:先进先出,后进后出(排队买票)(两端开口)

数据从后端进入队列:入队列

数据从前端离开队列:出队列(排队买票)

数组

  • 查询速度快:通过地址值和索引定位,查询任意数据耗时相同(元素在内存中是连续存储的)

  • 删除效率低:要将原始数据删除,同时后面每一个元素都要前移

  • 添加效率低

链表

  • 节点

  • 链表中的结点是独立的对象,在内存里是不连续的,每个结点包含的数据值和下一个结点的地址

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

  • 链表增删相对快

  • 双向链表

  • 单向链表

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

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

相关文章

Linux相关命令(1)

1、找出文件夹下包含 “aaa” 同时不包含 “bbb”的文件,然后把他们重新生成一下。要求只能用一行命令。 find ./ -type f -name "*aaa*" ! -name "*bbb*" -exec touch {} \;文件系统操作命令 df:列出文件系统的整体磁盘使用情况 …

2024/3/23 蓝桥杯

P1102 A-B 数对 二分 import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {//A-BCScanner sc new Scanner(System.in);int n sc.nextInt();int C sc.nextInt();int[] res new int[n1];for(int i1;i<n;i) {…

普通用户无法连接到docker服务

环境 tt:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy问题 tt:~$ sudo apt install docker.io -ytt:~$ docker info Client:Version: 24.0.5Context: d…

小孔平板应力集中问题matlab有限元编程【源码+PPT讲义】|三节点三角形单元|平面单元|稀疏矩阵 |Comsol网格

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现&#xff0c;并提供所有案例完整源码&#xff1b;2.单元…

样本投递技术

投递技术 APT 组织主要以邮件作为投递载体&#xff0c;邮件的标题、正文和附件都可能携带恶意代码。主要的方式是附件是漏洞文档、附件是二进制可执行程序和正文中包含指向恶意网站的超链接这三种。 APT攻击的载荷类型&#xff1a; 文档类&#xff1a;主要是office文档、pdf文…

NEFU 《JAVA语言程序设计》实验三 类的继承、接口和多态

1. (程序题)设计具有工作能力接口Workable&#xff0c;声明抽象方法updateName()&#xff0c;通过传入的字符串修改姓名&#xff1b;声明抽象方法calculateSalary()&#xff0c;返回计算的薪资 设计员工实体类Employee&#xff0c;公司下所有员工均包含&#xff0c;姓名&#x…

数组——LEETCODE的第35题(二分法与lower_bound函数)

数组——LEETCODE的第35题&#xff08;二分法与lower_bound函数&#xff09; 本文主要是根据leetcode 35题所写的关于数组的相关内容&#xff0c;主要包括&#xff1a; 数组的的特性leetcode第35题二分法的解题lower_bound函数的使用 文章目录 数组——LEETCODE的第35题&#x…

面试题(一)

目录 1.JDK、JRE、JVM之间的区别 2.hashcode()和equals()的区别 3.String、StringBuffer、StringBuilder的区别 4.泛型中extends和super的区别 5.和equals()的区别 6.重写和重载的区别 7.List和Set的区别 8.ArrayList和LinkedList区别 9.谈谈ConcurrentHashMap的原理 …

LangChain核心模块 Retrieval——文档加载器

Retrieval ​ 许多LLM申请需要用户的特定数据&#xff0c;这些数据不属于模型训练集的一部分&#xff0c;实现这一目标的主要方法是RAG(检索增强生成)&#xff0c;在这个过程中&#xff0c;将检索外部数据&#xff0c;然后在执行生成步骤时将其传递给LLM。 ​ LangChain 提供…

Unsafe的CAS操作及线程park与unpark

如下是一个参照AQS进行的一个加锁及解锁的简单实现&#xff1a; 多线程并发进行同步业务操作&#xff1b;加锁&#xff1a;尝试进行cas 0->1操作&#xff1b;如果加锁成功则进行业务处理&#xff0c;然后进行锁释放 1->0&#xff0c;然后将列头的线程进行唤醒&#xff1…

GDAL中的地理坐标系、投影坐标系及其相互转换

目录 地理坐标系 国内常用地理坐标系 投影坐标系 国内常用投影坐标系&#xff08;不推荐使用&#xff09; 坐标转换 地理坐标转为投影坐标 投影坐标转为地理坐标 地理坐标系 原理参考这篇文章&#xff1a;地理坐标系与投影坐标系区别与联系 https://yunxingluoyun.blog.…

webserver如何从零开始?

我们要做一个项目&#xff0c;过程是怎么样的呢&#xff1f;git clone ...部署&#xff0c;测试&#xff0c;然后开始写么&#xff0c;这样你大概率会“猪脑过载”&#xff0c;对一个项目的每个部分都没有清晰认识&#xff0c;能写出什么来&#xff1f;写之前当然需要测试每个功…

Linux网络协议栈从应用层到内核层③

文章目录 1、write源码剖析2、vfs层进行数据传输3、socket层进行数据传输4、tcp层进行数据传输5、ip层进行数据传输6、网络设备层进行数据传输7、网卡驱动层进行数据传输8、数据传输的整个流程 1、write源码剖析 系统调用原型 ssize_t write(int fildes, const void *buf, si…

Linux 在线yum安装: PostgreSQL 15.6数据库

Linux 在线yum安装&#xff1a; PostgreSQL 15.6数据库 1、PostgreSQL数据库简介2、在线安装PostgreSQL15.63、配置 PostgreSQL的环境变量4、使用默认用户登录PostgreSQL5、配置 PostgreSQL 允许远程登录6、修改 PostgreSQL 默认端口7、创建数据库和表、远程用户zyl8、pgAdmin远…

MATLAB环境下基于离散小波变换和主成分平均的医学图像融合方法

随着计算机技术和生物影像工程的日趋成熟&#xff0c;医学图像为医疗诊断提供的信息越来越丰富。目前&#xff0c;由于医学成像的设备种类繁多&#xff0c;导致医生获得的图像信息差异较大。如何把这些信息进行整合供医生使用成为当务之急。基于此&#xff0c;医学图像融合技术…

Rust 实战练习 - 8. 内存,ASM,外挂 【重磅】

目标&#xff1a; C写一个Demo版本的游戏由浅入深&#xff0c;了解外挂原理Linux/Android下实现内存读取ptrace实现内存修改&#xff08;依赖第三方库&#xff09; 先准备一个C写的小游戏 #include <stdio.h> #include <string.h>struct Role {float pos_x; // …

vue3+vite配置环境变量

1、创建环境变量文件&#xff1a;首先在vue3项目根目录创建.env.development 和 .env.prodution两个文件&#xff0c;分别为开发和生产环境&#xff08;必须.env.开头&#xff0c;需要额外环境&#xff0c;配置自定义的文件名称即可&#xff09; 2、在环境变量文件分别写对应…

Android内存优化项目经验分享 兼顾效率与性能

背景 项目上线一段时间后,回顾重要页面 保证更好用户体验及生产效率&#xff0c;做了内存优化和下载导出优化&#xff0c;具体效果如最后的一节的表格所示。 下面针对拍摄流程的两个页面 预览页 导出页优化实例进行介绍&#xff1a; 一.拍摄前预览页面优化 预览效果问题 存在…

试试前端自动化测试(基础篇)

众所周知的原因&#xff0c;前端作为一种特殊的 GUI 软件&#xff0c;做自动化测试困难重重。在快速迭代&#xff0c;UI 变动大的业务中&#xff0c;自动化测试想要落地更是男上加男 &#x1f436;。 近期的学习过程中&#xff0c;翻阅了众多前端自动化测试相关的文章&#xf…

【兆易创新GD32H759I-EVAL开发板】 关于LVGL 的内存配置

【兆易创新GD32H759I-EVAL开发板】拥有外部32MB的 SDRAM 在使用LVGL时 可以随意分配大小 但是我们也应该明白 所定义的内存大小的 的一些概念 LVGL中 有单独的 定义 LV_MEM_SIZE 定义内存大小 LVLG 中 在定义 显示程序 接口时 还需要用到 lv_disp_draw_buf_init() 分配显存…