常见的数据结构

【考研】操作系统——高速缓存与缓冲区、设备分配的数据结构 一、磁盘高速缓存 操作系统中使用磁盘高速缓存技术是指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息,用以提高磁盘的 I/O 速度,对高速缓存复制的访问要比原始数据访问更为高效。 二、缓冲区 (一) 引入缓冲区目的 1. 缓和CPU与 I/O 设备间速度不匹配的矛盾; 2. 减少对CPU的中断频率,放宽对CPU中断响应时间的限制; 3. 解决基本数据单元大小(即数据粒度)不匹配的问题; 4. 提高CPU和 I/O 设备之间的并行性。 (二)分类 1. 单缓冲 设备与处理机之间设 阅读详情

数据存储的常用结构有:栈、队列、数组、链表和红黑树。

一:栈(stack)

  • 栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其 他任何位置进行添加、查找、删除等操作。

  • 先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。

  • 栈的入口、出口的都是栈的顶端位置
    在这里插入图片描述

  • 压栈:就是存元素

  • 弹栈:就是取元素

二:队列

  • 队列:queue,简称队,它同堆栈一样,也是一种运算受限的线性表,其限制是仅允许在表的一端进行插入, 而在表的另一端进行删除。
  • 先进先出(即,存进去的元素,要在后它前面的元素依次取出后,才能取出该元素)。
  • 队列的入口、出口各占一侧。例如,下图中的左侧为入口,右侧为出口。
    在这里插入图片描述

三:数组(Array)

  • 数组:是有序的元素序列,数组是在内存中开辟一段连续的空间,并在此空间存放元素。
  • 查找元素快:通过索引,可以快速访问指定位置的元素
    在这里插入图片描述
  • 增删元素慢: 指定索引位置增加元素:需要创建一个新数组,将指定新元素存储在指定索引位置,再把原数组元素根 据索引,复制到新数组对应索引的位置
    在这里插入图片描述
  • 指定索引位置删除元素:需要创建一个新数组,把原数组元素根据索引,复制到新数组对应索引的位 置,原数组中指定索引位置元素不复制到新数组中。
    在这里插入图片描述

四:链表(linked list)

  • 链表:由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时i动态生成。每 个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。我们常说的 链表结构有单向链表与双向链表。

  • 多个结点之间,通过地址进行连接
    在这里插入图片描述

  • 查找元素慢:想查找某个元素,需要通过连接的节点,依次向后查找指定元素

  • 增删元素快: 增加元素:只需要修改连接下个元素的地址即可。
    在这里插入图片描述

  • 删除元素:只需要修改连接下个元素的地址即可。
    在这里插入图片描述

五:红黑树

  • 二叉树:是每个结点不超过2的有序树(tree) 。
  • 二叉树是每个节点最多有两个子树的树结构。顶上的叫根结点,两边被称作“左子树”和“右子树”。
    在这里插入图片描述
  • 红黑树,红黑树本身就是一颗二叉查找树,将节点插入后,该树仍然 是一颗二叉查找树。也就意味着,树的键值仍然是有序的。
  • 红黑树的约束:
  • 节点可以是红色的或者黑色的
  • 根节点是黑色的
  • 叶子节点(特指空节点)是黑色的
  • 每个红色节点的子节点都是黑色的
  • 任何一个节点到其每一个叶子节点的所有路径上黑色节点数相同
  • 红黑树的特点: 速度特别快,趋近平衡树,查找叶子元素最少和最多次数不多于二倍
嵌入式软开常用数据结构——环形缓冲区 环形缓冲区一种遵循FIFO(先进先出)的存储空间,它的主要特点是其终点和起点是相连的形成闭环。这种结构允许数据在达到缓冲区末尾时自动回绕到起始位置,从而实现数据的循环存储和管理。下图是一种形象理解。通俗地来讲,它也是一种线性表,由一个数组和两个表示读写状态的指针构成。在这个线性表被定义地第一时间,读指针与写指针指向同一个数组元素;当我们写入了一个数据之后,读指针会依旧指向第一个元素但写指针会按照写入方向依次指向下一个元素。如果写指针的下一个指向是读指针所在的元素,代表这个环形缓冲区已经写满。 阅读详情

相关推荐

嵌入式常见的数据结构

0 引言1 线性表1.1 顺序表1.1.1 定义类型1.1.2 相关操作1.1.3 相关操作的实现1.2 链表1.2.1 定义类型1.2.2 相关操作1.2.3 相关操作的实现2 栈2.1 顺序栈2.1.1 定义类型2.1.2 相关操作2.1.3 相关操作的实现2.2 链栈2.2.1 定义类型2.2.2 相关操作2.2.3 相关操作的实现3 队列3.1 顺序队列3.1.1 定义类型3.1.2 相关操作3.1.3 相关操作的实现3.2 链队列3.2.1 定义类型3.2.2 相关操作3.2.3 相.

Zhupeizhao的博客 5725

Nginx源码分析 - 基础数据结构篇 - 缓冲区结构 ngx_buf.c(04)

目录 一、数据结构定义 1. 缓冲区内存块的数据结构 ngx_buf_t 2. 缓冲区链表结构 ngx_chain_t 二、数据结构图 三、具体函数实现 1. 创建一个缓冲区buf ngx_create_temp_buf 2. 创建一个缓冲区的链表结构 ngx_alloc_chain_link 3. 批量创建多个缓冲区buf ngx_create_chain_of_bufs 4. 拷贝缓冲区链表 ngx_chain_add_copy 5. 获取一个空闲的buf链表结构 ngx_chain

alpha_love的博客 678

八大数据结构及常见面试题

几乎所有的问题都需要面试者对数据结构有深刻的理解。无论你是初入职场的新兵(刚从大学或者编程培训班毕业),还是拥有几十年经验的职场老鸟。 即便是对于一些非常基础的工作来说,学习数据结构也是必须的。那么,就让我们先从一些基本概念开始入手。 什么是数据结构? 简单地说,数据结构是以某种特定的布局方式存储数据的容器。这种“布局方式”决定了数据结构对于某些操作是高效的,而对于其他操作则是低效的。首先我们需要理解各种数据结构,才能在处理实际问题时选取最合适的数据结构...

一蓑烟雨 9742

环形缓冲区的使用

环形缓冲区是一个先进先出(FIFO)的闭环的存储空间。相当于就是一个固定大小的数组,和两个指针,读指针和写指针。环形 缓冲区的”环形“特性意味着当任一指针到达数组的末端的时候,会自动回绕到数据开始的位置。

chunchun2021的博客 4373

常见的数据结构面试题

常见的数据结构面试题,看看你能做出几题来2007年01月11日 星期四 14:15 1.       在一个单链表中p所指结点之前插入一个s (值为e)所指结点时,可执行如下操作:q=head;while (q->next!=p)  q=q->next;s= new  Node;   s->data=e;

cabbage_mm的专栏 2万+

Redis的常见数据结构

Redis5大数据结构是redis的根基,只有掌握了他们,才能更进一步的学习redis

moran114的博客 931

数据结构:缓冲区/缓存简单实现

利用 取余运算 使得读/写指针在长度为 capacity 的连续内存空间上循环进行读/写操作 (待加入:线程安全的读/写函数) 目录 头文件 buffer.h 源文件 buffer.c 1. 头文件 buffer.h /* buffer.h */ #include <stdlib.h> #include <stdio.h> #include <errno.h&...

在巴黎铁塔 :-) 3172

uniapp实现app版本发现新版本后,自动更新

app实现自动更新

oldolder的博客 1283

Java 中常见的数据结构

Java 集合框架提供了丰富的数据结构实现,以下我会介绍几种最常用的数据结构及其特性

2301_79446157的博客 1546

【深度学习-番外1】Win10系统搭建VSCode+Anaconda+Pytorch+CUDA深度学习环境和框架全过程

本文将介绍在Windows 10系统下搭建深度学习环境的完整过程,包括安装Anaconda、CUDA、NVIDIA显卡驱动以及Pytorch框架。后续本专栏的Python语言下的深度学习环境都以本篇搭建的为准。

fengzhuqiaoqiu的博客 4002

Android音频学习(十四)——加载音频设备

loadHwModule 是 Android 音频系统的核心初始化函数,负责加载音频硬件抽象层(HAL)的模块实现。它建立 AudioPolicyService 与底层硬件的桥梁,将配置文件(audio_policy_config.xml)中的标签<module>定义转化为可操作的硬件对象,加载的是音频硬件模块(HAL实现),每个模块对应一种音频设备类型,以动态库的形式存在,负责与底层音频硬件交互。

miemie2014的博客 1731

Java数据结构知识点 — 5种常见数据结构

Java中5种常见数据结构总结。

konghaoran的博客 2745

SWAT模型非点源模拟原理

目录引言模型概述非点源污染模拟原理物质迁移内容过程营养物农药病原菌运移河道水质模型营养元素的地表水体循环河道水质模拟藻类模拟氮元素磷元素生化需氧量及溶解氧重金属的运移蓄水体水质模拟 引言 今天无意接触到这一块,就记录下来了。 模型概述 1、流域中非点源污染的来源主要是农业化肥和农药的施用。 2、氮、磷等营养物和农药的迁移和转化取决于化合物在土壤环境中经历的转化过程。 3、SWAT模型可以模拟水文相应单元内氮、磷完整的营养物循环过程和任何一种农药的降解过程。 4、SWAT模拟流域内泥沙、藻类、溶解氧、有机污染

DoWayChan的博客 4878

常见8种数据结构

应用于需要后进先出访问元素的场景,如函数调用栈、表达式求值等。应用于需要先进先出访问元素的场景,如任务调度、消息队列等。适用于优先队列,堆排序和实现高效的合并K个有序链表问题。应用于需要表示层次结构的场景,比如文件系统、组织结构等。应用于需要表示网络结构的场景,如社交网络、交通网络等。应用于需要快速查找和插入操作的场景,如字典、缓存等。一般应用于需要快速随机访问元素的场景。适用于需要频繁插入和删除元素的场景。

qq_43575301的博客 2697

电能质量仿真:电能质量改善措施仿真_(12).电能质量改善措施综合仿真案例

假设我们有一个微电网系统,该系统包含分布式电源(如光伏板、风力发电机)、储能设备、负荷和电网连接。电压波动:由于负荷的波动和分布式电源的间歇性输出,系统电压出现了不稳定的情况。谐波污染:非线性负荷和逆变器的运行导致系统中出现了显著的谐波污染。频率偏差:分布式电源的波动和负荷的突变导致系统频率出现了偏差。我们需要通过仿真来评估这些问题的影响,并提出相应的改善措施。

2401_87715305的博客 1360

图神经网络实战(5)——常用图数据集

Cora 和 Facebook Page-Page 是图神经网络领域中经常使用的两个基准图数据集,通常用来比较不同模型的性能。在本节中,介绍了如何使用 PyTorch Geometric 库提供的数据集类加载 Cora 和 Facebook Page-Page 数据集,并探索了两个数据集的主要特征。

盼小辉丶的博客 1万+

数据结构:八大常见数据结构

数据结构目录: 一、结构分类 二、区别联系 1. 数组 2. 栈 3. 队列 4. 链表 5. 树 6. 散列表 7. 堆 8. 图 数据结构是指,相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。常用的数据结构有:数组、栈、队列、链表、树、散列表、堆、图。 一、结构分类: 数据结构大多是以三种分类方式分类,分别是逻辑结构,物理结构,存储结构,一般来讲大多是以逻辑结...

weixin_43062845的博客 6213

10万张数据集持续迭代:YOLO模型的场景专属自进化体系如何搭建?

做工业质检的朋友应该都有过这样的经历——拿着在COCO上刷榜的YOLO模型跑到产线上一测,精度直接腰斩。这不是模型不行,是场景不对口。过去一年,我深度参与了一个工业视觉项目:产线每天产生超过10万张图像,需要持续迭代检测模型。我们踩过无数坑,最终摸索出一套YOLO模型的场景专属自进化体系。今天不聊虚的,直接上干货。让模型在真实场景数据中持续学习、自动进化,而不是每次依赖人工标注从头训练。下面我从主动学习筛选、增量持续学习、架构选型、部署优化、安全防护五个维度,拆解整个搭建过程。声明。

2601_95807009的博客 106

常见数据结构

常见数据结构 在计算机科学中,数据结构(英语:data structure)是计算机中存储、组织数据的方式。 数据结构意味着介面或封装:一个数据结构可被视为两个函数之间的介面,或者是由数据类型联合组成的存储内容的访问方法封装。本文介绍一些常见的数据结构以及查询时间复杂度。 数组 所谓数组,是相同数据类型的元素按一定顺序排列的集合。 特点: 长度固定,无法动态扩展,空间分配快,存在空间浪费,查询效...

weixin_35833012的博客 232

液滴/液膜蒸发过程—in文件模拟-后处理分析-Ovito/Python绘图

液滴/液膜蒸发过程—in文件模拟-后处理分析-Ovito/Python绘图

Rockyoung 3324

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

数据结构面试常见问题

数据结构作为计算机的一门基础学科,它在面试中占有很大的比重,本科阶段,我们也学过数据结构与算法,内容比较多,也比较难,尤其是图的应用以及各类查找和排序算法,这些也都是核心内容。数据结构在实际的应用中也比较多,因此,整理一些常见的笔试、面试的数据结构常考点非常有必要。

屏前格物数载深,码间耕耘自沉吟。 愿以拙笔解惑困,笑与诸君渡迷津。 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

数据结构——常见数据结构和应用

数据描述事物的符号记录,是计算机程序的输入和输出。它可以以多种形式存在,如数字、文字、图像、声音等。数据是信息的载体,具有可识别性、可存储性、可处理性和可传输性等特点。数据对象必须由软件理解的复合信息表示。它可以是外部实体、事物、偶发事件或事件、角色、组织单位、地点或结构等的抽象表示。数据对象具有独立性、意义性和封装性等特点,只封装数据,没有对数据的操作。数据元素数据的基本单位,也叫做结点或记录。在计算机程序中,数据元素通常作为一个整体进行考虑和处理。

oopxiajun博客专栏 1673

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

java中常见的几种数据结构

数据结构相对于算法来说简直是屈指可数,常见的数据结构也就那几种,很容易掌握,但算法可以有成千上万,要想全部掌握基本上很难,我们常说的数据结构和算法是指数据结构和算法的结合,如果对算法感兴趣的也可以关注我的微信公众号“数据结构和算法”,这里基本上每个工作日都会推送一道算法题。闲话少说,这里我们来介绍一下常见的一些数据结构。 一,数组 数组算是最简单的一种数据结构了,在java中数组的类型只要不是Ob...

数据结构和算法 2902

【数据结构】常见数据结构类型

数据元素相互之间的关系称为结构。数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。 有四类基本结构:集合、线性结构、树形结构、图状结构。 1、集合结构:除了同属于一种类型外,别无其它关系。 3、线性结构:元素之间存在一对一关系常见类型有: 数组,链表、队列、栈,它们之间在操作上有所区别。例如:链表可在任意位置插入或删除元素,而队列在队尾插入元素,队头删除元素,栈只能在栈顶进行插入,删除操作。 3、树形结构:元素之间存在一对多关系,常见类型有:树(有许多特例:二叉树、

weixin_38615776的博客 7444

常见的数据结构与算法

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 在这里简单介绍下常见的数据结构与算法,当然对于大多数人来说,数据结构 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt i.

qq_41559118的博客 1万+
上一篇: Docker
下一篇: 今天写一个死锁的实例吧
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值