摘要:
## 堆 堆(Heap)是一种特殊的树形数据结构,它满足以下两个条件: 堆是一棵完全二叉树,即除了最后一层,其他层都是满的,最后一层从左到右填满。 堆中每个节点的值都大于等于(或小于等于)其子节点的值,这种性质称为堆序性。 根据堆序性,堆可以分为两种类型: - 大根堆(Max Heap):每个节点的 阅读全文
摘要:
## 工厂模式 工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需指定将要创建的对象的确切类。工厂模式通过定义一个工厂接口来创建对象,让子类决定实例化哪个类。这样可以将对象的创建与使用分离,从而降低系统的耦合度。 工厂模式包含三种角色: - 具体工 阅读全文
摘要:
## 散列表 散列表(Hash Table),也称为哈希表,是一种基于哈希函数(Hash Function)实现的数据结构,它支持快速的插入、删除和查找操作。 散列表将每个元素的关键字(Key)通过哈希函数映射到一个固定的位置,称为散列值(Hash Value),然后将元素存储在该位置上。 ![散列 阅读全文
摘要:
## 树 树(Tree)是一种非线性数据结构,它由若干个节点(Node)和若干个边(Edge)组成,节点之间的关系是一对多的关系。树的一个节点称为父节点(Parent Node),它的直接子节点称为子节点(Child Node),没有子节点的节点称为叶子节点(Leaf Node)。 树的一个重要特点 阅读全文
摘要:
## 队列 队列(Queue)是一种线性数据结构,它的特点是只能在一端进行插入操作,在另一端进行删除操作,这一端被称为队尾(Rear),另一端被称为队头(Front)。队列的插入操作称为入队(Enqueue),删除操作称为出队(Dequeue)。 队列的特点是先进先出(First In First 阅读全文
摘要:
## 栈 栈(Stack)是一种线性数据结构,它的特点是只能在一端进行插入和删除操作,这一端被称为栈顶(Top),另一端被称为栈底(Bottom)。 栈的插入操作称为入栈(Push),删除操作称为出栈(Pop)。 ![](https://img2023.cnblogs.com/blog/106454 阅读全文
摘要:
## 链表 链表是一种线性表,它使用一组通过指针相互连接的节点来存储元素。每个节点包含一个数据元素和一个指向下一个节点的指针。链表的元素在内存中不必连续存储,因此可以动态地增加或删除元素,而不需要移动其他元素。 链表分为单向链表、双向链表和循环链表等多种类型。单向链表每个节点只有一个指针,指向下一个 阅读全文
摘要:
## 顺序表 顺序表是一种线性表,它使用一段连续的存储空间来存储元素,每个元素占用一个固定大小的存储单元。顺序表支持随机访问,可以通过下标来访问任意位置的元素,因此它的访问效率很高。但是,顺序表的插入和删除操作比较耗时,因为需要移动大量元素。 顺序表通常使用数组来实现,数组的下标就是元素在顺序表中的 阅读全文