栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

面试官问:你说你计算机专业,连数据结构没有学过?链表和数组的区别与作用应该知道吧

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面试官问:你说你计算机专业,连数据结构没有学过?链表和数组的区别与作用应该知道吧

链表

链表:由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。

每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

我们常说的链表结构有单向链表与双向链表。

单向链表 特点

(1)多个结点之间,通过地址进行连接

(2)查找元素慢:想查找某个元素,需要通过连接的节点,依次向后查找指定元素

(3)增删元素快:

双向链表

有两个指针域分别指向前一个结点和后一个结点,还有一部分用来保存结点数据,初始化结点时需要将两个指针都指向空

1.增加结点。

增加结点时,需要将最后一个结点的next指针指向新结点,然后将新结点的prev指向最后一个结点


3.删除结点。

删除结点时需要将待删除结点的前一个结点的next指向待删除结点的后一个结点,然后,把后者的prev指针指向前者:

4.插入结点。

插入结点就是将新结点的前一个结点的next指针指向指向新结点,然后把新结点的next指针指向前一个结点原来后面的那个结点,然后把后面的结点的prev指针指向新结点,把新结点的Prev指针指向前一个结点。

数组

数组:同一种类型数据的集合。

特点:

(1)查找元素快:通过索引,可以快速访问指定位置的元素;

(2)增删元素慢

  • 指定索引位置增加元素:需要创建一个新数组,将指定新元素存储在指定索引位置,再把原数组元素根 据索引,复制到新数组对应索引的位置。如下图

  • 指定索引位置删除元素:需要创建一个新数组,把原数组元素根据索引,复制到新数组对应索引的位置,原数组中指定索引位置元素不复制到新数组中。如下图

链表和数组的区别

1.链表是链式存储结构,数组是顺序存储结构;

2.链表通过指针连接元素,而数组则是把所有元素按顺序进行存储;

3.链表插入和删除元素不需要移动元素,数组删除和增加元素需要移动元素。

4.链表查找慢,增删快

5.数组查找快,增删慢

链表的作用

链表就将一系列不连续的内存联系起来,将那种碎片内存进行合理的利用,解决空间的问题。
所以,链表允许插入和删除表上任意位置上的节点,但是不允许随即存取。

数组的作用

最大的作用:可以自动给数组中的元素从0开始编号,方便操作这些元素。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324462.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号