PHP常见的几种数据结构

1 数组:一种线性表的数据结构,它用一段连续的内存空间,来存储具有相同类型的值。

2 链表:

和数组不同,链表并不需要一块连续的内存空间,它通过“指针”将一组零散的内存块串联起来使用,一般节点有两个属性(data和next)。

类型有:单链表和双向链表,

3 栈:

限定只能在一端进行插入和删除操作的线性表,并且满足先进后出(即后进先出)的特点。我们把允许插入和删除的一端叫做栈顶,另一个端叫做栈底,不含任何数据的栈叫做空栈。栈支持通过数组/链表实现,通过数组实现的通常叫做顺序栈,通过链表实现的叫做链栈。如:array_push()和array_pop()。

4 队列:

和栈类似,队列也是一种特殊的线性表结构,只不过队列是在一端插入,另一端删除,就跟我们平常排队一样,从队尾入队,在队头出去,所以队列的特性是先进先出,允许插入的一端叫队尾,允许删除的一端叫队头。队列也可以通过数组和链表实现,通过数组实现的叫顺序队列,通过链表实现的叫做链式队列,栈只需要一个栈顶指针就可以了,因为只允许在栈顶插入删除,但是队列需要两个指针,一个指向队头,一个指向队尾。如:array_shift()和array_push()。

5 递归:

在函数定义中调用函数自身,将一个大的问题拆分成多个小问题,逐一击破后最后归并结果。


线性表:像线一样的性质的表。零个或多个数据元素的有限序列。也是一个序列。

线性表有:

1、顺序存储结构:用一段地址连续的存储单元依次存储线性表的数据元素。

PHP常见的几种数据结构1 数组:一种线性表的数据 - 图1

2、链式存储结构:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。这就意味着,这些数据元素可以存在内存未被占用的任意位置。

PHP常见的几种数据结构1 数组:一种线性表的数据 - 图2
PHP常见的几种数据结构1 数组:一种线性表的数据 - 图3PHP常见的几种数据结构1 数组:一种线性表的数据 - 图4