zoukankan      html  css  js  c++  java
  • Java学习:数据结构简介

    数据结构

    数据结构:

    数据结构_栈:先进后出

    • 入口和出口在同一侧

    数据结构_队列:先进先出

    • 入口和出口在集合的两侧

    数据结构_数组:

    • 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速的查找某一个元素。
    • 增删慢:数组的长度是固定的,我们想要增加/删除一个元素,必须创建一个新数组,把原数组的数据复制过来
    例:
    int[] arr = new int[]{1,2,3,4};

    要把数组索引是3的元素删除

    • 必须创建一个新的数组,长度是原数组的长度-1
    • 把原数组的其它元素复制到新数组中
    • 在新数组的地址赋值给变量arr
    • 原数组会在内存中被销毁(垃回收收)


    数据结构_链表:

    • 查询慢:链表中地址不是连续的,每次查询元素,都必须从头开始查询。
    • 增删快:链结构,增加/删除一个元素,对链的整体结构没有影响,所以增删快

    链表中的每一个元素也称之为一个节点
    一个节点包含了一个数据源(存储数组),两指针域(存储地址)

    • 单向链:链中只有一条链,不能保证元素的顺序(存储元素和取出元素的顺序可能不一致)
    • 双向链:链中有两链,有一条链是专门记录元素的顺序,是一个有序的集合


    二叉树:分支不能超过两

    • 排序树/查找树:在二叉树的基础上,元素是有大小顺序的(左子树小,右子树大)
    • 平衡树:左孩子和右孩子相等
    • 不平衡树:左孩子和右孩子不相等

    红黑树:
    特点:趋近于平衡树,查询的速度非常的快,查询叶子节点最大次数和最小次数不能超过2倍
    约束:

      1. 节点可以是红色的或者是黑色的
      2. 根节点是黑色的
      3. 叶子节点(空节点)是黑色的
      4. 每个红色的节点的子节点都是黑色的
      5. 任何一个节点到其每一个叶子节点的所有路径上黑色节点数相等
  • 相关阅读:
    官方文档翻译-Today
    RAC & MVVM 学习资料整理
    35种常用字体
    中文字体的种类
    自言自语(三)--部分中文字体
    自言自语(二)--英文无衬线体和有衬线体
    sketch字体设置技巧(一)---通过锚点改变字体形态
    提高设计档次的8个方法
    知识汇总09~bootstrap-select在Vue中的封装
    知识汇总08~字符串截取
  • 原文地址:https://www.cnblogs.com/cainiao-chuanqi/p/11223084.html
Copyright © 2011-2022 走看看