定义:把所有的结点用一根直线穿起来
1.数组:
连续的存储,元素类型相同,大小相等
优点:
存取速度快
缺点:
插入速度和删除速度慢
空间有限制(需要知道数组的长度)
需要连续的存储空间
2.链表:
申请的空间可以不是一块连续的存储单元
n个节点离散分配
彼此通过指针相连
每一个节点只有一个前驱节点,每一个节点只有一个后节点
首节点没有前驱节点,尾结点没有后续节点
优点:
插入和删除快
存储的容量一般没有限制(相对于数组有限制来说)
缺点:
存取元素速度慢
专业术语:
首节点:第一个有效节点
尾结点:最后一个有效节点
头结点:第一个有效节点之前的那个节点
头结点并不存放有效数据
方便对链表的操作
头指针:
指向头节点的指针变量
尾指针:
指向尾结点的指针变量
如果希望通过一个函数来对链表进行处理,我们至少需要知道链表的什么参数:
头指针
分类:
单链表
双链表
循环链表
非循环链表
算法:
狭义的算法是与数据的存储方式有关
广义的算法与数据存储方式无关
泛型:
利用某种技术达到的效果就是:不用的数据存数方式,执行的操作是一样的。
网友评论