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


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

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

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

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

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

《数组》

(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-❤️)访问方式

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

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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏木三少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值