随笔分类 -  数据结构

摘要:个人认为数据结构有点偏向理论知识点,从这些理论知识点,我们可以知道各种数据结构的特点,然后在特定的场景下使用对应的数据结构来存储。 基础的数据结构 从逻辑上来说基础的数据结构只有线性结构、非线性结构,也就是数组、链表。其他复杂一点的如队列、栈、树、图、hash table 都可以通过数组和链表的方式 阅读全文
posted @ 2023-06-05 19:47 风吹De麦浪 阅读(23) 评论(0) 推荐(0) 编辑
摘要:二叉树遍历 二叉树的遍历是指从根节点出发,按照某种顺序依次访问所有节点,而且只访问一次,二叉树的遍历方式很多,如果限制了从左到右的方式,那么主要有4种: 前序遍历:根左右 中序遍历:左根右 后续遍历:左右根 层序遍历:按层级、从上到下,在同一层从左到右遍历 以上一篇的二叉树为例子,先序遍历 先访问根 阅读全文
posted @ 2021-05-10 17:54 风吹De麦浪 阅读(769) 评论(1) 推荐(1) 编辑
摘要:前面介绍过的都是线性的数据结构,本文将介绍一种非线性数据结构——树,它对于存储需要快速查找的数据非常有用。树是一种一对多的数据结构,树这种数据结构在生活中经常看到,如 组织结构图 图中每个元素我们叫做节点,即树(Tree)可以理解为是n(n>=0)个节点的有限集合。当n=0时称为空树。 基本概念 树 阅读全文
posted @ 2021-05-08 15:42 风吹De麦浪 阅读(779) 评论(0) 推荐(1) 编辑
摘要:散列表的由来 前面说了数组、链表,他们各自有自己的特点: 数组:具有随机访问的特点,可以快速的根据下标访问到数据,缺点是插入、删除需要移动数据 链表:插入、删除只需要改变结点之间的引用,缺点是查找数据需要从根结点遍历访问 散列表是组合了数组和链表的优势,规避它们的不足而产生新的一种数据结构。散列表是 阅读全文
posted @ 2021-04-26 07:33 风吹De麦浪 阅读(1097) 评论(0) 推荐(2) 编辑
摘要:栈 栈是一种特殊的的线性表结构,只允许在一端插入和删除操作。允许插入和删除的一端是栈顶,另一端是栈底,不包含任何数据的叫空栈,栈具有后进者先出(Last in first out)简称LIFO,栈的操作主要有入栈、出栈 如 线性表、链表都是线性结构中的一种,只是存储方式不一样,叫不同的名称。 实现栈 阅读全文
posted @ 2021-04-21 00:09 风吹De麦浪 阅读(272) 评论(0) 推荐(1) 编辑
摘要:链表 标准数组是一块连续的内存地址,所以在做插入、删除时会对数据进行大量的移动,如果数据量很大那么效率会比较低。如果我们把每一个元素都记录着下一个元素的地址,那我们在做插入、删除时是不是只需要改变下一个元素的地址即可, 如 从存储结构来看链表不需要一块连续的内存空间,它通过“指针”将一组零散的内存块 阅读全文
posted @ 2021-04-19 23:12 风吹De麦浪 阅读(315) 评论(0) 推荐(1) 编辑
摘要:线性结构 线性结构是一个有序数据元素的集合,数据之间的关系是1:1 的关系如: 平时常用的线性结构有数组、线性表、栈、队列 如。 什么是数组 数组是计算机分配一块连续的内存空间,来存储具有相同元素类型的数据。数组具有随机访问的特点,这个特点有利有弊,比如可以根据数组下标快速的访问元素,但是要想在数组 阅读全文
posted @ 2021-04-18 10:35 风吹De麦浪 阅读(488) 评论(0) 推荐(1) 编辑
摘要:为什么需要复杂度分析 我们可以把代码跑一遍,然后通过一些工具来统计、监控就能得到算法执行的时间和占用的内存大小。为什么还要做时间、空间复杂度分析呢?这种分析方法能比我实实在在跑一遍得到的数据更准确吗? 首先,肯定的说这种评估算法执行效率的方法是正确的。很多数据结构和算法书籍还给这种方法起了一个名字, 阅读全文
posted @ 2021-04-12 22:20 风吹De麦浪 阅读(577) 评论(1) 推荐(2) 编辑
摘要:前端要不要学习数据结构 作为一名IT技术人员,需要不断的完善自己的知识体系来提升自己,类似数据结构、网络等。在工作中大部分时间我们都是做应用层面的开发,有时候对数据结构、算法这些基本功要求不是很高,但是一些基本得知识点我们还是需要掌握。 到底什么是数据结构 是不是经常听别人说数据结构、算法、程序 = 阅读全文
posted @ 2021-03-14 10:00 风吹De麦浪 阅读(573) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示