【数据结构】常见数据结构汇总

news2024/11/18 20:35:06

文章目录

  • 前言
  • 一、数组
  • 二、链表
  • 三、栈
  • 四、队列
  • 五、哈希表--散列表
  • 六、堆
  • 七、树
  • 八、图
  • 参考与感谢

前言

数据结构是计算机存储、组织数据的方式。一种好的数据结构可以带来更高的运行或者存储效率。数据在内存中是呈线性排列的,但是我们可以使用指针等道具,构造出类似“树形”的复杂结构。下面介绍八个常见的数据结构。

在这里插入图片描述

一、数组

数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。
详细请看我之前写的文章

  • 线性表–数组

二、链表

链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域 (内存空间),另一个是指向下一个结点地址的指针域。
详细请看我之前写的文章

  • 什么是链表?并用代码手动实现一个单向链表
  • 单向循环链表(增加元素、删除元素、打印循环链表等功能)
  • 什么是双向链表?并用代码手动实现一个双向链表
  • 什么是双向循环链表?以及实现过程

三、栈

栈也是一种数据呈线性排列的数据结构,不过在这种结构中,我们只能访问最新添加的数
据。从栈顶放入元素的操作叫入栈,取出元素叫出栈。
详细请看我之前写的文章

  • 数据结构与算法学习——栈结构

四、队列

队列中的添加和删除数据的操作分别是在两端进行的。队列可以在一端添加元素,在另一端取出元素,也就是:先进先出(First In First Out,简称FIFO)
详细请看我之前写的文章

  • 线性表–栈和队列(Stack & Queue)【详解】

五、哈希表–散列表

哈希表,也叫散列表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。例如,下列键(key)为人名,value为性别。
详细请看我之前写的文章

  • 散列表(哈希表)

六、堆

堆是一种图的树形结构,被用于实现“优先队列”(priority queues)。优先队列是一种数据结构,可以自由添加数据,但取出数据时要从最小值开始按顺序取出。在堆的树形结构中,各个顶点被称为“结点”(node),数据就存储在这些结点中。
详细请看我之前写的文章

  • 【数据结构】堆

七、树

它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做 “树” 是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
详细请看我之前写的文章

  • 树(Tree)【详解】

八、图

图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
详细请看我之前写的文章

  • 图(Graph)【详解】

参考与感谢

  • 《我的第一本算法书》

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

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

相关文章

hive学习入门

第四章 HQL基础语法 Hive中的语句叫做HQL语句,是一种类似SQL的语句,基本上和SQL相同但是某些地方也是有很大的区别. 4.1 数据库操作 创建数据库 1.创建一个数据库,数据库在HDFS上的默认存储路径是/hive/warehouse/*.db。 create database hive01; 避免要创建的数据库已经存…

算法设计与分析:分治法

目录 第1关:分治法介绍 任务描述: 相关知识: 基本概念: 解题步骤: 实例演示: 关键代码: 编程要求: 测试说明: 第2关:归并排序 任务描述:…

网安行业「iPhone时刻」!深信服首秀安全GPT技术应用

5月18日,深信服正式对外首秀安全GPT技术应用。深信服科技董事长何朝曦在现场分享了安全GPT技术应用的研发背景、技术应用特点及未来设想。深信服科技研发总经理梁景波、深信服安全攻防专家演示了安全GPT技术应用在XDR平台上的效果,包括高级威胁检测、安全…

Midjourney8种风格介绍+使用场景(2)

引言 我相信大家都或多或少玩过Midjourney,但是要形成自己独特的个人IP,那么有必要知晓画作的一些基础知识,如果你没有时间实践,没有关系,我来操作,定期分享画作相关知识,既简单又方便&#xff…

软件测试面试常常遇到的十大“套路”

面试中,如何回答HR提出的问题很大程度上决定了面试能不能成功。 下面是软件测试人员在面试过程中经常被问到的10个问题,告诉你怎么回答才不会被面试官套路...... 一、请你做一个自我介绍 误区: 一般人回答这个问题过于平常,只说…

5th-Generation Mobile Communication Technology(四)

目录 一、5G/NR 1、 快速参考(Quick Reference) 2、5G Success 3、5G Challenges 4、Qualcomm Videos 二、PHY and Protocol 1、Frame Structure 2、Numerology 3、Waveform 4、Frequency Band 5、BWP 6、Synchronization 7、Beam Management 8、CSI Fra…

闭包?什么是闭包?--JavaScript前端

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 闭包的背景 由于js中只有两种作用域,全局作用域和函数作用域(模块…

模拟封装C标准库

文章目录 1. 准备工作2. my_fopen3. my_fwrite4. my_fclose和my_fflush5. syncfs 1. 准备工作 举个例子: 这里我们要实现my_fopen,my_fwrite和my_fclose这三个函数,并封装MyFILE。 这是MyFILE的封装,然后我们把三个函数接口完成…

Seaborn 可视化学习

Abstract 主要讲述绘制强化学习结果时遇到的seaborn操作。因此,本文主要讲述Lineplot的用法,以及图片的相关设置 线条绘制 import seaborn as sns import pandas as pd import matplotlib.pyplot as plt import numpy as np# 单线绘制 data pd.DataF…

接口测试全流程扫盲,让我看看有哪些漏网之鱼

目录 扫盲内容: 1.什么是接口? 2.接口都有哪些类型? 3.接口的本质及其工作原理是什么? 4.什么是接口测试? 5.问什么要做接口测试? 6.怎样做接口测试? 7.接口测测试点是什么?…

蓝桥杯2020年第十一届省赛真题-回文日期python两种方法题解(贪心+datetime)

题目 原题链接:回文日期 - 蓝桥云课 (lanqiao.cn) 题目描述 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。…

如何系统自学黑客(网络安全)?

前言: 黑客技能是一项非常复杂和专业的技能,需要广泛的计算机知识和网络安全知识。下面是一些你可以参考和学习的步骤,以系统自学黑客(网络安全): 在学习之前,要给自己定一个目标或者思考一下…

SpringBoot日志配置(四十七)

当一切被遗忘,那么就回到最初的地方 上一章简单介绍了SpringBoot配置文件敏感信息加密(四十六) , 如果没有看过,请观看上一章 这一章节,我们学习一下日志配置. 参考文章: Spring Boot 日志配置(超详细) 一. 日志配置处理 我们创建一个普通的 SpringB…

docker-compose 实现Seata Server高可用部署 | Spring Cloud 51

一、前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 TC (Transaction Coordinator) - 事务协调者 维护全局和分支事…

excel根据不同分类动态设置不同下拉列列表

有这样一个需求,有很多个系统,需要在excel中下拉选择其系统一级分类、二级分类、三级分类,不同的一级分类对应不同的二级分类列表,不同的二级分类对应不同的三级分类列表。 针对这个需求,我们采用了excel/wps中的数据…

数据结构总结7:并查集、图

后续会有补充 并查集 查你在哪个集合,在有一定交集情况下会合并集合 可应用的场景: 1.分组 2.已有集合合并 并查集就是把一组数据分组,把有共同特征的元素以树的形式放在一组 仔细观察数组中内融化,可以得出以下结论&#x…

【数据结构和算法】数据结构基础和算法思想

文章目录 1. 基础的一些数据结构(1)数组(2)链表(3)二叉树(4)哈希表 2. 有哪些常见的算法思想?3. 常见排序算法及其复杂度 1. 基础的一些数据结构 (1&#xf…

java多线程之定时器

文章目录 一、 简介1. 概念2. 定时器的使用 二、 常用方法介绍1. Schedule(TimTask task,Data time)2. Schedule(TimTask task,Data firstTime, long period)3. Schedule(TimTask task, long delay)4. Schedule(TimTask task, long delay, lo…

数据结构_排序

目录 1. 排序的基本概念 2. 插入排序 2.1 直接插入排序 2.2 折半插入排序 2.3 希尔排序 2.4 相关练习 3. 交换排序 3.1 冒泡排序 3.2 快速排序 3.3 相关练习 4. 选择排序 4.1 简单选择序列 4.2 堆排序 4.3 相关练习 5. 归并排序和基数排序 5.1 归并排序 5.2 基…

这几款实用的电脑软件推荐给你

软件一:TeamViewer TeamViewer是一款跨平台的远程控制软件,它可以帮助用户远程访问和控制其他计算机、服务器、移动设备等,并且支持文件传输、会议功能等。 TeamViewer的主要功能包括: 远程控制:支持远程访问和控制…