zoukankan      html  css  js  c++  java
  • 基础数据结构

    类型

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

    静态数组

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

    动态数组

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

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

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

    数组队列

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

    循环队列

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

    链表

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

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

    二分搜索树

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

  • 相关阅读:
    【HDOJ】2267 How Many People Can Survive
    【HDOJ】2268 How To Use The Car
    【HDOJ】2266 How Many Equations Can You Find
    【POJ】2278 DNA Sequence
    【ZOJ】3430 Detect the Virus
    【HDOJ】2896 病毒侵袭
    求奇数的乘积
    平方和与立方和
    求数列的和
    水仙花数
  • 原文地址:https://www.cnblogs.com/fiany/p/11586376.html
Copyright © 2011-2022 走看看