教材:数据结构C语言版——第二版 人民邮电出版社
参考课程:b站——数据结构与算法基础(青岛大学-王卓)
绪论
数据结构主要研究非数值计算问题(无法建立数学模型)。
数据结构在计算机的学习中起到承上启下的作用,介于数学、计算机硬件和软件三者之间。
基本概念
数据(Data)——数值型、非数值型
数据元素(Data Element)——数据的基本单位。用于完整地描述一个对象
一个数据元素可有若干个数据项组成
数据项(Data Item)——组成数据元素的、有独立含义的、不可分割的最小单位。
数据、数据元素、数据项关系:数据 > 数据元素 > 数据项
例:学生表 > 个人记录 > 学号、姓名....
数据对象(Data Object)——性质相同的数据元素的集合,是数据的一个子集。
数据结构(Data Structure)——相互之间存在一种或多种特定关系数据元素的集合。或者说 是带结构的数据元素的集合。
逻辑结构划分
逻辑结构与数据的存储无关,是 独立于 计算机的。
线性结构:如线性表、栈、队列、串
非线性结构:如树、图
四类基本逻辑结构:集合结构
线性结构:一对一
树形结构:一对多
图状结构或网状结构:多对多
存储结构
存储结构也成为物理结构,即数据对象在计算机中的存储。
四种基本存储结构
顺序存储结构:连续的存储单元依次存储。 C语言中用数组来实现。
链式存储结构:任意的存储单元存储数据元素。 C语言中用指针来实现。
每个结点占用两个连续的存储单元,一个存放节点信息,另一个存放后继节点的子地址。
索引存储结构:存储结点信息同时,建立附加的索引表。
散列存储结构 :根据结点关键字直接计算结点的存储地址。