mac_girl

集合中常用的数据结构

集合中常用的数据结构

一)、栈

栈的特点:先进后出

二)、队列

队列的特点:先进先出

三)、数组

数组的特点:查询快,增删慢

查询快的原因:数组的地址连续,通过地址可以找到数组,通过索引可以找到元素。
如:一个班的学生按学号排列在一起,你想找一个同学,通过学号你很快就能找到

增删慢的原因:增删需要做3个动作
1. 在堆中新建一个数组,用于存储删除或修改后的数组元素
2. 将原数组的变量指向新的数组
3. 垃圾回收旧的数组

四)、链表

链表的特点:查询慢,增删快

查询慢的原因: 链表的地址不连续,每一次查询都要从头开始
 如:一个班的同学不按学号排列在一起,你要找一个叫小花的学生,你的从头开始 挨个问

增删快的原因:    增删一个原素,你只需要改变节点前后地址的指向即可

链表的分类:
  1. 单向链表
      存储元素和取出元素的顺序可能不一致
  2. 双向链表
     专门有一条链记录元素顺序,是一个有集合

链表节点的组成:
  1. 链表的节点有三部分组成
  2. 自己的地址  数据  下一个节点的地址

五)、红黑树

树的分类:
    1.  二叉树
       特点:分支不超过两个

    2. 排序树/查找树
        特点:左边小,右边大,查询速度快。

    3. *衡树
        特点:左孩子数量 = 右孩子数量

    4. 不*衡树
        特点:左孩子数量 != 右孩子数量
    5. 红黑树
        特点:趋*于*衡树,查询速度快,叶子节点的最大查询次数和最小查询次数不能超过两倍

六)、 红黑树的约束(构造)
1. 节点可以是红色或黑色
2. 根节点是黑色
3. 叶子节点是黑色
4. 红色节点到子节点是黑色的
5. 任何一个节点到每一个叶子节点的所有路径黑色节点数相同

posted on   宇宙美少女  阅读(671)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)

导航

统计信息

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