你要如何给孩子讲解数据结构呢?
写在前面:内存可以想象成现实生活中的空间。接下来我们讲解数据结构中线性结构最常见的数组和链表。
数组
在内存中,数组是一块连续的区域。可以想象学校的操场,在操场中自己班级的同学必须站成一队。
特点:
必须要有足够多的空间让同学站成队伍。
如果同学中间插入一个同学,插入之后的同学需要后移。
如果同学中间某个同学离开,离开同学之后的同学需要前移。
每个人脚下都有一个号码,每个同学都知道自己站在第几个位置,比如10号--小明,12号--小红……
优点:
随机访问性强
查找速度快
链表
在内存中可以存在任何地方,不要求连续。可以想象学校的操场,在操场中同学随便站位但是必须知道你后面是谁。
特点:
站位随便,不需要很长的连续空间。
需要额外记住自己后面是谁(每一个数据都保存了下一个数据的内存地址)。
插入和离开很简单,只需要改变前面同学的记忆就可以。
同学并不知道自己站在队伍的第多少位。(不具有随机访问性)
优点:
不需要额外的空间预留,拓展灵活
很容易插入和删除(不需要跟数组一样移位)