zoukankan      html  css  js  c++  java
  • 集合中常用的数据结构

    集合中常用的数据结构

    一)、栈

    栈的特点:先进后出

    二)、队列

    队列的特点:先进先出

    三)、数组

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

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

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

    四)、链表

    链表的特点:查询慢,增删快
    
    查询慢的原因: 链表的地址不连续,每一次查询都要从头开始
     如:一个班的同学不按学号排列在一起,你要找一个叫小花的学生,你的从头开始 挨个问
    
    增删快的原因:    增删一个原素,你只需要改变节点前后地址的指向即可
    
    链表的分类:
      1. 单向链表
          存储元素和取出元素的顺序可能不一致
      2. 双向链表
         专门有一条链记录元素顺序,是一个有集合
    
    链表节点的组成:
      1. 链表的节点有三部分组成
      2. 自己的地址  数据  下一个节点的地址
    

    五)、红黑树

    树的分类:
        1.  二叉树
           特点:分支不超过两个
    
        2. 排序树/查找树
            特点:左边小,右边大,查询速度快。
    
        3. *衡树
            特点:左孩子数量 = 右孩子数量
    
        4. 不*衡树
            特点:左孩子数量 != 右孩子数量
        5. 红黑树
            特点:趋*于*衡树,查询速度快,叶子节点的最大查询次数和最小查询次数不能超过两倍
    

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

    金麟岂能忍一世平凡 飞上了青天 天下还依然
  • 相关阅读:
    包含min函数的栈
    栈的应用
    给定金额m和红包数量n
    顺时针打印矩阵
    二叉树的镜像
    elementUI table表头错位问题
    金额格式化
    ajax跨域问题全解
    JavaScript 的 this 原理
    vue技术分享-你可能不知道的7个秘密
  • 原文地址:https://www.cnblogs.com/Auge/p/11609885.html
Copyright © 2011-2022 走看看