码迷,mamicode.com
首页 > 其他好文 > 详细

集合中常用的数据结构

时间:2019-09-29 21:28:57      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:单向链表   个数   通过   动作   改变   pre   自己   元素   红黑树   

集合中常用的数据结构

一)、栈

栈的特点:先进后出

二)、队列

队列的特点:先进先出

三)、数组

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

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

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

四)、链表

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

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

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

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

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

五)、红黑树

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

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

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

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

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

集合中常用的数据结构

标签:单向链表   个数   通过   动作   改变   pre   自己   元素   红黑树   

原文地址:https://www.cnblogs.com/Auge/p/11609885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!