《解构线性数据结构的核心骨架:从存储模型到操作范式的深度解析》
线性数据结构概述
线性数据结构是数据元素按线性顺序排列的集合,每个元素有唯一的前驱和后继(除首尾元素)。常见类型包括数组、队列、链表和栈,每种结构在存储和操作上具有独特特性。
线性表:顾名思义,线性表就是数据排成像一条线的结构。每个线性表上的数据最多只有前和后两个方向。线性表结构:数组、链表、队列、栈
数组(Array)
数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。连续内存空间存储相同类型元素,通过索引直接访问。
// 动态初始化:初始化时由程序员只指定数组长度,由系统为数组元素分配初始值
char c1[] = new char[5];
// 静态初始化: 初始化时由程序员显示置顶每个数组的初始值,由系统决定数组长度
char c2[] = new char[]{'E','D','U','Y','U'};
char c3[] = {'E','D','U','Y','U'};
主要特点
-
固定大小:需预先分配内存,扩容成本高,内存地址连续
-
随机访问:时间复杂度为 $O(1)$,可以通过下标的成员访问,下标访问的性能高
-
操作效率:插入/删除需移动元素,平均时间复杂度 $O(n)$,增删操作带来更大的性能消耗(保证数据越界的问题,需动态扩容)
-
适用场景:频繁查询、元素数量固定的场景