常见的几种数据结构

线性

  1. 链表
    物理存储上非连续的,存储结构。每个元素由两部分构成,一部分是存储的数据,另一部分是指向下一个节点的指针。
    截屏2020-10-26 下午8.41.50

    单链表,双向链表,循环链表

  2. 限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶,另一端称为栈底。先进后出的线性表。
    截屏2020-10-26 下午8.53.21

    入栈push 出栈pop

  3. 队列

    只允许在一端进行插入操作,在另一端进行删除的线性表。队列是一种先进先出的线性表。允许插入的一端称为队尾,允许删除的一端称为队头

截屏2020-10-26 下午9.01.45

  1. 数组

    a[10],数组确定大小后不能更改,有索引。

    int a[10];

非线性

  1. 树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
    截屏2020-10-26 下午9.15.13

  2. 一个图就是一些顶点的集合,这些顶点通过一系列结对(连接)。顶点用圆圈表示,边就是这些圆圈之间的连线。顶点之间通过边连接。

截屏2020-10-26 下午9.17.15

  1. 散列表

    哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。