1.数组 array
    就不过多说什么了,最常用的数据结构
    2.链表 linkedlist
    线性表的一种,分为单向表,双向表,循环表
    都是按照一定顺序串联在一起,添加修改删除,修改指向关系到新的元素即可
    单向表: 指向前一个元素
    双向表: 指向前一个与后一个元素
    循环表: 与单项表相比,最后的元素指向了最开始的元素,形成闭环
    自己写的index_list.php
    3.栈 stack
    与队列类似 ,先进后出 只有一个出口,只能在栈顶部,增加、弹出元素
    使用的数组来存储(可能有扩展类),每次尾部增加key值元素,从尾部取出元素
    自己写的index_stack.php
    4.堆 heap
    一个跟二叉树一样的数据结构,用一维数组存储,有左右两个分支,按照顺序每层依次排列,满了之后才会进行下一次,两个子节点没有顺序。
    最大堆: 父节点比子节点都大 堆顶节点最大
    最小堆: 父节点比子节点都小 堆顶节点最小
    根据父节点可以找到子节点(n/2) 也可以根据子节点找到父节点((n-1)2)
    堆的层数floor(log(节点数),2)+1; 一层的节点数 2 h 次幂。
    适用于排序,优先队列,快速找到最大、最小值,
    添加,删除操作都需要重现整合堆数据
    自己写的index.php
    5.线性表 list
    跟链表相似,元素按照顺序排列在一起 ,
    按结构逻辑 分为一般线性表和受限线性表(栈 队列)
    可能也有扩展 可以直接使用
    用数据存储的话就是逐个添加,插入时,依次向后错一个key 删除时 依次向前错一个
    key
    自己写的index.php
    6.队列 queue
    跟栈相反,先进先出,头部出,尾部入
    扩展不清楚,用数组存储,
    每次入队添加,出队取开头数据用数组函数操作
    7.集合 set
    元素不重复的集合,php实现 每次插入都需查找是否重复,进行交集并集操作
    8.字典 map
    关联数组,键值对方式存储,通过key直接获取到值,数组实现key,val,next=>(重
    复)
    *9.图 graph

    数据结构,节点,边,构建图形,每个节点之间的关联关系,无向表,有向表,存储
    方式邻接矩阵,邻接表 还有十字链表,存储,各个节点之间的联系,权重,