数组有上界和下界,数组内的元素在上下界内是连续的。
数组的特点是:数据是连续的;随机访问速度快
数组中稍微复杂一点的是多维数组和动态数组。对于C语言,多维数组本质上也是通过一维数组实现的。动态数组,是指数组的容量能动态增长,对于C语言需要手动实现;对于C++而言, STL提供了Vector;对于Java而言,Collection集合提供了ArrayList和Vector。
单向链表(单链表)是链表的一种,它由节点组成,每个节点都包含下一个节点的指针。
单向链表的特点是:节点的链接放心是单向的,相对于数组,单向链表的随机访问速度慢,但是单向链表删除、添加数据的效率很高。
双向链表(双链表)是链表的一种。和单链表一样,双链表也是由节点组成,它的每个数据节点中都有两个指针,分别指向直接后继和直接前驱。所以,从双链表中的任意一个节点开始,都可以很方便地访问它的前驱节点和后继节点。一般我们都构造双向循环链表。