数据结构是计算机存储、组织数据的方式。
数据结构包括数组、类、链表、队列、栈、树等。
(像int、char、double等属于语言内置的基本数据结构。)
而上面提到的数组等属于语言经过进一步加工后的数据结构。
- 数组:
- 无序的。假如,数组arr中有10个元素,通过index值可以取到里面的任意元素,比如arr[6].并且,取arr[3]和arr[9]是没有先后顺序的,可以先取arr[9]再取arr[3],反之亦可。
- 数组一旦定义长度后不可变。即使有增删改查的接口,底层实现是先把原来的数组删除,再重新定义一个数组。
- 可以接受任何数据类型的数据作为其成员结构。
- 类:
- 属性
- 方法
- 链表:
- 有序的。有一个head,往下就是node,每个节点存储数据和指针,指针作为指向下一个node的向导,有的语言(比如java)删除一个node后,前后node自动连接,有的语言(比如C)需要手动连接。
队列:
先进先出
比如淘宝限时抢购,就可以作为这样一个例子。栈:
先进后出
多用于算法树:
二叉树多叉树
二叉树有专门的数据存储规则,这套规则使得查找数据变得容易,一般查找一半就能确定下来,但是和链表不一样,链表长度为10,就要查10次;二叉树长度为10,一般查5次就能找到。
两者数据存储空间差不多。