当前位置: 首页 > news >正文

【408二轮强化】数据结构——线性表

以下是结合两篇内容整理的408数据结构线性表系统复习指南,涵盖核心考点、真题解析、代码模板及备考策略

📚 一、线性表基础概念

1. 定义与分类
类型 存储方式 特点
顺序表 连续内存空间(数组) 支持随机访问(O(1)),插入/删除需移动元素(O(n))
链表 非连续内存(节点+指针) 顺序访问(O(n)),已知前驱时插入/删除O(1);未知时需遍历定位(O(n))
2. 易错点提醒
  • 链表操作误区:链表插入/删除时间复杂度不一定是O(1),需先定位前驱节点。
  • 存取方式:顺序表是随机存取(根据地址直接访问),链表是顺序存取(必须遍历)。

🔢 二、顺序表核心考点

1. 必会手写代码

逆置/循环移位(高频!)

// 三次逆置法(2010/2018/2020真题)
void Reverse(int A[], int left, int right) {while (left < right) {swap(A[left], A[right]);  // 首尾交换left++; right--;}
}
// 循环左移p位:Reverse(A, 0, n-1); Reverse(A, 0, p-1); Reverse(A, p, n-1);

时间复杂度:O(n),空间复杂度:O(1) 。

元素重排(快排思想)

// 负数左移(2018真题)
void MoveNegatives(SqList &L) {int i = 0, j = L.length - 1;while (i < j) {while (i < j && L.data[i] < 0) i++;  // 从左找非负数while (i < j && L.data[j] >= 0) j--; // 从右找负数if (i < j) swap(L.data[i], L.data[j]);}
}
2. 理解即可的算法
  • 最小未出现正整数(2018真题):利用数组下标映射,O(n)时间+O(1)空间。
  • 多数组操作(如三元组最小距离):三指针扫描法(2020真题)。

🔗 三、链表核心考点

1. 必会手写代码

单链表逆置(三指针法)

// 头插法或三指针法(2009/2013真题)
LinkList ReverseList(LinkList L)
http://www.dtcms.com/a/300379.html

相关文章:

  • Pspice仿真电路:(三十四)如何使用Pspcie进行仿真
  • mount: /mnt/sd: wrong fs type, bad option, bad superblock on /dev/mmcblk1
  • 两个USB-CAN-A收发测试
  • Item14:在资源管理类中小心拷贝行为
  • 小白成长之路-部署Zabbix7(二)
  • 每日一题【删除有序数组中的重复项 II】
  • linux shell从入门到精通(二)——变量操作
  • 深度学习损失函数的设计哲学:从交叉熵到Huber损失的深入探索
  • java--JDBC
  • OSPF路由协议之多区域划分
  • nuphy新键盘快捷键
  • 智慧工业缺陷检测准确率↑32%:陌讯多模态融合算法实战解析
  • 英语听力口语词汇-8.美食类
  • docker安装问题汇总
  • ETE_Voice:端到端C++智能语音对话系统
  • 用unity开发教学辅助软件---幼儿绘本英语拼读
  • 相机标定相关原理
  • 【高等数学】第五章 定积分——第五节 反常积分的审敛法 Γ函数
  • C++编程学习(第16天)
  • 【RK3568 PWM 子系统(SG90)驱动开发详解】
  • JavaScript手录06-函数
  • Linux——线程同步
  • KubeKey安装KubeSphere、部署应用实践问题总结
  • 立式加工中心X-Y轴传动机械结构设“cad【6张】三维图+设计说明书
  • 计算机中的单位(详细易懂)
  • 计算机结构-逻辑门、存储器、内存、加法器、锁存器、程序计数器
  • 斐波那契数列加强版 快速矩阵幂
  • 53. 最大子数组和
  • 组合问题(回溯算法)
  • Windows Server容器化应用的资源限制设置