数据结构_数组、链表
数据结构_数组
特点:查询快,增删慢。
数组:Array,是有序的元素序列,数组是在内存中开辟一段连续的空间,
并在此空间中存放元素。
>查找元素快:通过索引,可以快速访问指定位置的元素
增删元素慢:
>指定索引位置增加元素:需创建一个新数组,将指定新元素存储在指定索引位置,
在把元素根据索引,复制到新数组对应索引的位置
查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速查找某一个元素
增删慢:数组的长度是固定的,我们想要增加/删除一个元素,必须创建一个新数组,把源数组的数据复制过来
在堆内存中,频繁的创建数组,赋值数组中的元素,销毁数组,效率低下
数据结构_链表
>链表:linked list,由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时i动态生成。
每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
我们常说的链表结构有单向链表与双向链表,为单向链表。
>多个结点之间,通过地址进行连接
>查找元素慢:想找某个元素,需要通过连接的节点,依次向后查找指定元素
>增删元素快:
>增加元素:只需修改连接下个元素的地址即可
查询慢:链表中地址不是连续的,每次查询元素,都必须从头开始查询
增删快:链表结构,增加/删除一个元素,对链表的整体结构没有影响,所以增删快
链表中的每一个元素也称之为一个节点
一个节点包含了一个数据源(存储数组),两个指针域(存储地址)
单向链表:链表中只要一条链子,不能保证元素的顺序(存储元素和取出元素的顺序有可能不一致)
双向链表:链表中有两条链子,有一条链子是专门记录元素的顺序,是一个有序的集合
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix