随笔分类 - 数据结构
数据结构
摘要:图遍历分为深度优先遍历(DFS)和广度优先遍历(BFS),DFS一直往下走直到没路再返回,BFS先走所有路一步。文章还介绍了以邻接矩阵存储无向图的实现方法,包括定义、初始化、获取点数量等操作。
阅读全文
摘要:学习复杂数据结构图,回顾线性表、树结构,图结构多对多关系更复杂。图由点集和边集组成,分类无向图、有向图、带权图。存储方式有邻接矩阵、邻接表、逆邻接表、十字链表。
阅读全文
摘要:本文介绍散列表代码实现,使用取模方式构建散列函数,实现链式法和开放寻址法(线性探测)解决碰撞,包含初始化、插入、删除、查找等功能,并实现了再散列方法,代码已上传至代码库。
阅读全文
摘要:散列表碰撞解决方案包括链式法、开放寻址法(含线性、平方、双重散列、随机探测)、再散列法。链式法用链表处理碰撞,开放寻址法通过探测解决,再散列法通过扩容并重计算位置。
阅读全文
摘要:散列表以key-value存储,通过散列函数快速查找、插入、删除。散列函数需准确、快速、均匀、抗碰撞,常见算法有取模、乘法、DJB2等,散列表存储和检索效率高。
阅读全文
摘要:堆是特殊二叉树,分小根堆和大根堆,适合求集合最值。堆用数组实现,因其位置计算简单、性能好、操作简单。本文介绍了最小堆的实现,包括初始化、入堆、出堆和堆化等操作。
阅读全文
摘要:本文介绍了使用数组和链表两种方式实现二叉树,包括初始化、节点操作(如获取、添加、删除)、以及遍历方法(前序、中序、后序、层次遍历)。测试代码已上传至代码库。
阅读全文
摘要:文章介绍了二叉树、N叉树及其性质,包括满二叉树、完全二叉树、二叉搜索树、平衡二叉树等,并讨论了它们的存储结构,包括顺序存储和链式存储,链式存储更适合大多数树。
阅读全文
摘要:树是分支分层的数据结构,包含根节点、子节点等术语,有深度、高度等属性。二叉树是树的一种,节点最多有两个子节点,有前序、中序、后序和层次遍历方式。
阅读全文
摘要:队列是先进先出数据结构,分顺序和链式队列。顺序队列容量固定,易浪费空间;链式队列无限扩容,高内存利用率。队列按功能特性分多种,如阻塞、优先、延迟、循环和双端队列,不同场景有独特效果。
阅读全文
摘要:栈是一种特殊线性数据结构,操作遵循后进先出原则,可解决表达式求值等问题。栈分为顺序栈和链栈,各有特点。文章详细介绍了栈的定义、分类及实现方式,包括顺序栈和链栈的ADT定义及基本操作实现。
阅读全文
摘要:本文介绍了链表的基本概念、节点和头指针的定义,链表的分类及实现方式。通过自申请内存空间和维护,实现了单链表的操作,包括初始化、插入、查找、更新、移除和销毁等操作,并提供了代码示例。
阅读全文
摘要:学习数组,需掌握其ADT定义。数组为同类型元素序列,具固定长度、连续内存、类型相同、索引从0起等特性。通过ADT定义数组,实现类包含内存管理和长度字段,支持初始化、获取/设置元素、插入/删除及释放内存等操作。掌握数据结构需理解其定义并实现。
阅读全文
摘要:数据结构是数据管理和存储的格式,包含物理结构、逻辑结构和数据运算三要素。物理结构关注数据如何存储,逻辑结构关注数据如何组织,数据运算关注数据处理。将深入学习九类数据结构。
阅读全文