数据结构_数组

特点:查询快,增删慢。

数组:Array,是有序的元素序列,数组是在内存中开辟一段连续的空间,

并在此空间中存放元素。

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

增删元素慢:

  >指定索引位置增加元素:需创建一个新数组,将指定新元素存储在指定索引位置,

在把元素根据索引,复制到新数组对应索引的位置

查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速查找某一个元素

增删慢:数组的长度是固定的,我们想要增加/删除一个元素,必须创建一个新数组,把源数组的数据复制过来

数组中某个值的所有索引_结点

 

 在堆内存中,频繁的创建数组,赋值数组中的元素,销毁数组,效率低下

数据结构_链表

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

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

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

 >多个结点之间,通过地址进行连接

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

>增删元素快:

  >增加元素:只需修改连接下个元素的地址即可

查询慢:链表中地址不是连续的,每次查询元素,都必须从头开始查询

增删快:链表结构,增加/删除一个元素,对链表的整体结构没有影响,所以增删快

 

链表中的每一个元素也称之为一个节点

一个节点包含了一个数据源(存储数组),两个指针域(存储地址)

 单向链表:链表中只要一条链子,不能保证元素的顺序(存储元素和取出元素的顺序有可能不一致)

双向链表:链表中有两条链子,有一条链子是专门记录元素的顺序,是一个有序的集合

 

 

数组中某个值的所有索引_数组_02

 

 

搜索

复制