• 基础数据结构


    类型

    • 静态数组
    • 动态数组
    • 数组队列
    • 循环队列
    • 链表
    • 二分搜索树
    • 优先队列

    静态数组

    是一种线性结构数据,基于基本数组实现,在初始化时已经定义好了可以存放的数据大小,不可动态扩容.

    动态数组

    基于静态数组,支持动态扩容与缩容。支持从任意位置插入删除数据。

    基于动态数组实现,是一种特殊的后进先出队列(LIFO),只能从队列顶部插入取出数据。

    -应用场景
    系统调用栈,括号匹配

    数组队列

    基于动态数组实现,是一种线性结构,先进先出(FIFO),只能从一端插入元素(队尾),另一端取出元素(队首).类似于一个排队的过程.实现过程: 插入数据时是将数据插入数组的尾端,取出数据时是将数组索引为0的数据取出,然后将后面的数据往前移动一个位置.

    循环队列

    基于动态数组实现,基本特性与数组队列相同,不同点只是在实现方式上面,实现过程:插入数据时将数据插入数组的尾端,如果此时数组满了如果数组前面有空位置,将数据按照顺序插入前面位置,如果前面位置的数组也满了,再进行数据的扩容,取出数据时取出队列最前面的一个数据,不进行数组数据的移动,将位置空出来,给后续插入数据时使用,(数据插入到数组的最后一个位置的时候循环移动到数据索引为0的位置插入(如果还有空间的情况下))

    链表

    一个节点包含指向下一个节点位置的索引的一种数据结构,类似与铁链环环相扣.

    一个节点包含有多个执向下一个节点位置的索引,类似于树的形状.

    二分搜索树

    一个几点包含有两个执行下一个节点的索引,通常称之为包含左孩子和右孩子.左孩子小于该节点,该节点小于右孩子.

  • 相关阅读:
    Hive on Spark
    Mongodb添加副本及修改优先级
    RabbitMQ与Spring集成
    最简单的图文教程,几步完成Git的公私钥配置
    Idea Ant 打开发包
    Spring Web 项目Junit测试报错问题
    阿里云maven仓库地址,速度提升100倍
    Spring boot 学习
    JAVA开发常用工具包
    从无到有搭建SSM框架
  • 原文地址:https://www.cnblogs.com/fiany/p/11586376.html
Copyright © 2020-2023  润新知