数据结构
文章平均质量分 96
白晨并不是很能熬夜
大家好,我是白晨。这个人想日更,但是好像不太可能,尽量不咕咕咕吧。
展开
-
【数据结构与算法】常用数据结构(二)
大家好,我是白晨。本次又为大家带来的是常用数据结构的模拟实现,主要用于在算法比赛中快速实现一种常用模拟实现。那为什么不用STL呢?首先,STL为了保证其接口的通用性以及要严格符合一个数据结构的定义,在使用时可能不是非常方便;其次,模拟实现的数据结构在运行速度方面是要快于STL的容器的。上篇文章常用数据结构(一)我们介绍了单链表、双链表、栈、队列以及堆这五种最常用的数据结构的模拟实现,本次白晨将在上篇文章的基础上为大家介绍5种更高级的常用数据结构——单调栈、单调队列、并查集、Trie以及哈希表。原创 2023-05-08 10:30:00 · 805 阅读 · 8 评论 -
【数据结构与算法】常用数据结构(一)
大家好,我是白晨。本次为大家带来的常用数据结构的模拟实现,主要用于在算法比赛中快速实现一种常用模拟实现。那为什么不用STL呢?首先,STL为了保证其接口的通用性以及要严格符合一个数据结构的定义,在使用时可能不是非常方便;其次,模拟实现的数据结构在运行速度方面是要快于STL的容器的。本篇文章将详细介绍单链表、双链表、栈、队列以及堆这五种常见数据结构的模拟实现,由于本次是面向新人的教程,白晨使用大量图片、动图和语言描述详细拆解一个模拟数据结构的实现。原创 2023-04-23 10:00:00 · 572 阅读 · 8 评论 -
【数据结构与算法】并查集
大家好,我是白晨,这次为大家带来的数据结构是并查集,这是一种能够快速合并两个集合以及快速查询两个元素是否在一个集合中,时间复杂度在大量查询的情况下可以达到O(1)的数据结构,由于实现思路简单,代码短,性质好,经常会在算法题中用到。同时,并查集也在与图相关的算法中出现过很多次,例如,最小生成树Kruskal算法就使用了并查集。并查集 (英文:Disjoint-set data structure,直译为不交集数据结构)是一种数据结构 ,用于。原创 2023-01-31 10:30:00 · 3191 阅读 · 4 评论 -
【数据结构与算法】Trie
本次要带大家认识的的是Trie,这是一个便于快速查询字符串等数据出现次数的数据结构,在算法竞赛中也是一个比较好用的结构。虽然使用也能实现类似功能,但是Trie更加节省空间并且在存储数字等结构,它还有无法代替的优势,这里先买个关子,在下面文章中我会详细讲解。Trie字典树又叫前缀树(prefix tree),用以较快速地进行单词或前缀查询。Trie树本质上就是一棵多叉树,用来存储字符串或者其他数据。原创 2023-01-12 10:30:00 · 1636 阅读 · 32 评论 -
【数据结构】堆的全解析
大家好,我是白晨,一个不是很能熬夜,但是也想日更的人✈。如果喜欢这篇文章,点个赞,关注一下白晨吧!你的支持就是我最大的动力!文章目录????前言堆????堆的定义及结构????堆结构以及????简单接口函数的代码实现????堆的创建向下调整算法向上调整算法堆的插入堆的删除????堆的应用Topk问题堆排序????堆的全局代码????后记????前言上一篇文章,我们详细介绍了二叉树的入门知识(如果没有二叉树基础的同学建议先看一下二叉树入门,我原创 2022-01-16 11:52:58 · 11325 阅读 · 80 评论 -
【数据结构】二叉树全解析(入门篇)
<font size=5????大家好,我是白晨,一个不是很能熬夜????,但是也想日更的人✈。如果喜欢这篇文章,点个赞????,关注一下????白晨吧!你的支持就是我最大的动力!????????????文章目录????前言1.树1.1 树的基本概念1.2 树的基本术语1.3 树的逻辑表示1.4 树的表示2.二叉树2.1 二叉树的基本概念2.2 二叉树的性质2.3 特殊二叉树2.3.1 满二叉树2.3.2 完全二叉树2.4 二叉树的存储结构2.4.1 二叉树的顺序存储2.4.2 二叉树的链式结构2原创 2022-01-08 22:02:18 · 3916 阅读 · 56 评论 -
【数据结构】栈与队列全解析(一篇文章让你从入门到进阶)
☀️ HELLO,大家好,我是白晨❤️呀!????今天又到了我们一起来学习的时间啦????,苦心人、天不负,卧薪尝胆,三千越甲可吞吴,一起加油吧????????。前言在顺序表和链表中我们讲述了数据结构最基本的两种结构,今天我们就要在这两种数据结构的基础上来继续认识另外两种数据结构——栈和队列。为了内容的完整性以及可读性(主要是有进阶内容),我将前一篇文章栈结构全解析也搬到了这里。废话不多说,正文见下1.栈1.1 栈的定义及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删原创 2022-01-03 08:50:44 · 759 阅读 · 46 评论 -
【数据结构】栈结构全解析
☀️ Hi,大家好,我是每天都在变强的白晨。????在顺序表和链表中我们讲述了数据结构最基本的两种结构,今天我们就要在这两种数据结构的基础上来继续认识另外两种数据结构——栈和队列原创 2021-12-30 22:11:03 · 2099 阅读 · 17 评论 -
【数据结构】链表全解析
前言在上篇顺序表文章末尾(【数据结构】顺序表),我们留了几个问题,主要是道出了顺序表的不足之处,例如,插入数据困难,要不断申请空间,而且会有空间浪费。那么,有没有一种结构,可以较好的解决这几个问题呢?这就要提到我们今天的主角——链表。1.链表的概念链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。与顺序表不同,使用链表存储的数据元素,其物理存储位置是随机的。应该怎么理解呢?日常生活中的火车可以较为形象的表示链表结构。火原创 2021-12-26 12:46:52 · 1368 阅读 · 16 评论 -
【数据结构】顺序表
目录1.线性表2.顺序表2.1 顺序表的定义及分类2.2 顺序表的结构及基本接口实现顺序表的结构顺序表的初始化,增容及销毁顺序表的查找顺序表的插入顺序表的删除顺序表完整代码后记1.线性表线性表(linear list):n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...简单来理解一下:就是“用一根线将不同的数据串联起来”,也就意味着通过一个线性表中的数据,最多只能找到.原创 2021-12-25 14:18:19 · 1507 阅读 · 14 评论