408数据结构篇:基本概念
前言:数据结构与算法是408计算机学科专业基础综合核心必考模块,也是计算机求职笔试、面试的核心重难点。吃透基础概念,是后续刷题、拔高、攻坚高阶算法的关键。
一、数据结构
1.1 数据结构基本概念(核心名词辨析)
本节为考研基础选择题高频考点,重点区分数据、数据元素、数据项、数据对象四个易混概念。
点击展开:五大核心概念详解
- 数据:信息的载体,是描述客观事物属性的数、字符,以及所有能输入计算机、可被程序识别和处理的符号集合。是计算机处理的所有信息的统称。
- 数据元素:数据的基本处理单位,程序中通常作为整体处理。一个数据元素可由多个数据项组成。
举例:学生整体信息记录(学号+姓名+性别+成绩)。
- 数据项:数据元素中不可分割的最小单位,是数据的最小粒度。
举例:单独的学号、学生姓名、单科成绩。
- 数据对象:具有相同性质的数据元素的集合,是数据的子集。
举例:全班所有学生的信息记录、所有整数数据。
- 数据结构:相互之间存在一种或多种特定关系的数据元素的集合,核心研究数据元素之间的相互关系。
1.2 数据类型分类
点击展开:三类数据类型详解
- 原子类型:值不可再拆分的基础数据类型,是最小数据单元。
示例:
int、bool、char、float等基本类型。 - 结构类型:值可拆分为多个独立分量的数据类型,由多个原子类型或结构类型组合而成。
示例:结构体、数组、链表节点等。
- 抽象数据类型(ADT):抽象的数据组织形式 + 对应专属操作的总称,不局限于具体编程语言,侧重逻辑定义。
核心特点:数据抽象、操作抽象,典型如栈、队列、树、图。
1.3 数据结构三要素(考研重中之重)
所有数据结构的学习,均围绕以下三要素展开,是分析各类结构特性的核心依据。
- 逻辑结构:数据元素之间的抽象逻辑关系,与存储位置无关。
常见分类:线性结构(线性表、栈、队列)、非线性结构(树、图、集合)。 - 存储结构(物理结构):逻辑结构在计算机内存中的具体存储形式。
四大基础结构:顺序存储、链式存储、索引存储、散列存储。 - 数据运算:对数据结构可执行的操作,核心运算:查找、插入、删除、修改、排序。
二、算法
经典公式:程序 = 数据结构 + 算法
数据结构负责存储数据、组织数据,算法负责处理数据、解决问题,二者相辅相成。
算法定义:对特定问题求解步骤的有限、有序指令序列,每一条指令对应一个或多个基础操作。
2.1 算法五大基本特性(必考选择题)
点击展开:算法五大特性完整解析
- 有穷性:算法必须在有限步骤、有限时间内执行结束,不能无限循环、永久执行。(区别于程序,程序可以无限运行)
- 确定性:每一条指令含义唯一、无歧义,相同输入必然得到完全相同的输出,不存在随机、模糊执行逻辑。
- 可行性:算法中所有操作,都可通过计算机已实现的基本运算,经过有限次执行完成,不存在无法落地的操作。
- 输入:零个或多个输入,输入数据取自特定对象集合,可无外部输入(内部赋值)。
- 输出:一个或多个输出,输出结果与输入数据存在明确的逻辑对应关系,无输出的算法无意义。
2.2 优质算法的四大评判标准
- 正确性:核心标准,算法能够准确求解问题,合法输入可得到正确结果,满足题目需求。
- 可读性:代码逻辑清晰、注释规范、结构工整,便于他人阅读理解、调试和二次修改,工程开发优先级极高。
- 健壮性:面对非法输入、异常数据时,可主动处理、合理报错,不会崩溃、输出乱码或未知结果。
- 高效率、低存储:时间复杂度低、空间复杂度小,在问题规模增大时,仍能保持良好的运行性能。
2.3 算法时间复杂度
核心定义:算法基本操作的执行次数,是问题规模 $n$ 的函数,用于衡量算法运行时间的增长趋势。
记作:$T(n)=O(f(n))$
含义:算法执行时间的增长率与 $f(n)$ 的增长率趋于一致,只关注高阶主导项,忽略常数、低阶项。
2.4 算法空间复杂度
核心定义:算法运行过程中,所耗费的最大内存存储空间,同样是问题规模 $n$ 的函数。
记作:$S(n)=O(g(n))$
包含两部分:算法本身指令占用空间 + 运行时临时变量、辅助空间占用。
:::tip 💡408考研核心总结
- 概念题重点区分:数据/数据元素/数据项/数据对象;算法五大特性
- 计算题核心:时间复杂度、空间复杂度分析
- 设计题基础:基于三要素分析各类数据结构特性
:::
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 初学者的博客!


