苏木三少
错的不是你,而是这个世界。

《原创》数组和链表——-简单学习

数组和链表——-简单学习

前几天本身已经写好的东西,怪自己太笨,把数据库删除了。故选择重新做这个关于数组和链表的文章,希望帮到大家。

看了《算法图解》这本书把我直接遗留下来好久的病给去了,而且还巩固了基础,所以想出一片文章让大家都理解。首先大家看下面的图片,里面包含了数组和 链表的简单顺序:

链表:链表的每个元素都存储了下一个元素的地址,从而使一系列随机的内存地址串在一起。

数组:在内存中,数组是一块连续的区域。

数组和链表的优点总结以及基础知识

《数组》

(1)下面在描述数组前先给大家讲一个术语:

索引:元素的位置称为索引。这样说可能有些初学者朋友还是看不懂。

下面给大家举个例子:

比如这个元素阿傻位于索引1处。很多朋友叫下标,但是为了专业一点可以说是索引。为了防止大家钻牛角尖,使用哪种读法都可以。

(2)*******数组在内存中是连续的。*******

(3)今天看到数组的表示可以用指针表示,比如 int a[10]可以写成int (*a)[10];并且二维数组如int b[3][4];可以写成 int *(*(b+3)+4);虽然简简单单 但是可以看出数组和指针有着密不可分的关系。这些是都是在c语言中其他计算机语言就不知道了。

(4)关于数组它支持随机访问,所以在读数据方面它更胜一筹。

(5)数组支持随机访问顺序访问两种访问方式。

《链表》

(1)链表的存储顺序在内存中可以是不连续的。

(2)链表只支持顺序访问。(访问比较麻烦)

(3)链表在输出的插入删除方面有较多的优点。(速度快)

(4)链表在后面的散列表(一种数据结构)会用到。

数组和链表的插入删除详解

《数组》

数组在插入和删除方面有很大的缺点,

(1)随机插入的话 (假设在元素1和元素2之间插入)这就必须把元素2向后移才能插入。假设后面的数据很多的话就不便于我们插入了。(简便的话就在数组后面插入但是要考虑数组长度)

(2)删除的话(假设删除元素1)这就把元素0后面的元素全部向前移动。假设后面数据很多就很麻烦了。

(3)插入时必须考虑内存大小是否够。否则会操作失败。

《链表》

(1)链表虽然很优秀但是在数据访问的时候比较麻烦,因为自身是只支持顺序访问。所以这种访问方式很麻烦,比如我们要知道元素(3.阿坏)的位置,我们必须知道元素(1.阿呆)的位置然后问阿呆 元素(2.阿傻)的位置,其次继续问阿傻 元素(3.阿坏)的位置。总结起来就是要知道某个元素 必须从头开始去访问,这就造成了时间的浪费。

(1-<2-<3)访问方式

(2)插入时必须考虑内存大小是否够。否则会操作失败。

(3)链表在插入删除的时候只需要修改前一个元素的指向地址就行了。(简单的说插入元素(4.阿衰)只需要告诉阿呆下一个找阿衰就可以啦。)

 

赞(0) 打赏
有问题的朋友随时留言,或者加我为好友。我的QQ是805375353. <<苏木三少博客 » 《原创》数组和链表——-简单学习

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

十年之约