一、链表和数组
在编写代码中,我们临时储存的数据是在内存当中,内存就像一块块并列排序的小方盒,每个小方盒都有自己地址,我们储存的数据就在这样一个个小方盒当中。
这些数据存放的结构有两种基本方式,数组和链表。
1,数组
数组在内存中是按顺序,内存地址来存储的,就好似上图的抽屉,从上到下,按顺序存放物品,中间不能间断,你在第一个抽屉放一个数据,又在第三个抽屉放一个数据,中间空一个抽屉,这是不允许的。这一特征也就意味着数据在内存中是相连的,紧紧不分开的,小的空闲内存空间可能会装不下较多的数据,造成了内存空间浪费。
世界上许多事情有好有坏,有利有弊,数组也是如此,数据在内存中紧密相连,也就意味着牵一发而动全身,比如你想在数组中添加一项数据,这就好比一排已经排好队的士兵,每个人都有自己的编号,而此时你突然要插入其中。
你:“兄弟方便让个位置吗?”
你后面的士兵都一脸凶神恶煞地看着你,如果不是排长强力要求你插入其中,他们肯定不会让你入队,因为你的入队,让你身后的士兵的编号都要往后挪,比如10号变成了11号。
数组也是一样,当新加入一个数据时,这就意味着它后面的数据内存地址都要往后稍一稍,删除亦如此。