上一讲 程序=数据结构+算法
上次介绍了数据结构相关内容理解。这次介绍数据结构另一块内容线性结构理解。线性结构存储形式类似一列火车,这种包含有数组,链表,队列,栈。
1 数组 是数据结构中逻辑结构分类其中一种,物理结构 以连续地址存储单元把数据存储在一块。
1.1 有以下优势 通过下标快速查找到数据元素。劣势增加和删除 需要移动大量元素,为什么需要大量移动?举个例子 当创建一个长度为3的字符串数组,首先循环初始化数据,再新增进一个字符串,此时就会抛异常了,数组大小是固定的。那想要动态放进去,重新创建一个长度为4的数组,再把数据存进去。这个过程有大量数据 花费开销较大。删除也是同个原理。工作中就要注意了不同场景用不同数据结构进行操作(JAVA 中ArrayList 数据结构就是数组)。
JAVA语言以数组结构添加元素实现(ArrayList)
JAVA语言数组结构查找元素
2 链表 用一组任意的存储单元存储线性表的数据元素,物理结构存储单元可以是连续的,也可以是不连续的。这种数据结构实现方式数据节点中创建两个空间一个存储数据,另一个存储后继的数据节点的地址。
2.1链表数据结构优势增加 删除快,这种效率高原因 用火车举个例 当从某个位置增加一列车厢 , 首先断开原来车厢的链子,再把新车厢加进去,套上锁链。
换成计算语言,链表数据结构中新增一个数据节点,假设原有已存在数据,此时把前个数据节点存储地址空间换成新增数据节点地址,再把新增数据节点存储空间的地址村上原来后继节点地址。
劣势查找效率差这种的原因是当要查找某个元素,依次取出每个节点的数据空间中的数据再与要查找的数据节点进行匹配,匹配上终止,再返回。
数据域
JAVA语言链表数据结构添加元素实现(LinkList)
JAVA语言链表数据结构查找元素
下一讲 队列 与栈