01、数据结构与算法 - 基础:概述
1、简介
数据结构:研究数据的逻辑结构和物理结构,以及它们之间的关系,并对这种结构定义相应的运算。
数据(Data):客观事物的符号表示,在计算机科学中指所有能输入到计算机中并被计算机程序处理的符号的总称
数据元素(Data Element):数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理
数据项:数据的不可分割的最小单位,一个数据元素可以由若干个数据项组成
数据对象(Data Object):性质相同的数据元素的集合,是数据的一个子集。
2、数据结构的分类
数据结构包括存储结构和逻辑结构两个层次
2.1 存储结构(物理结构)
数据对象在计算机中的存储表示,就称为数据的存储结构
存储结构包括:顺序存储结构、链式存储结构、索引存储、散列存储
基本的存储结构主要分为 顺序存储结构 和 链式存储结构 两种
顺序存储结构:
- 定义:在计算机中用一组地址连续的存储单元,依次存储线性表的各个数据元素,称作线性表的顺序存储结构
特点
- 随机存取表中元素
- 插入和删除操作需要移动元素
链式存储结构:
定义:把数据元素存放在任意的存储单元中,存储单元可以是连续的也可以是不连续的。链式结构比较灵活,通过指针来存储地址,从而通过地址来寻找相邻元素
特点:
- 比顺序存储结构密度小,每个节点由数据域和指针域组成
- 逻辑上相邻的节点物理上不用相邻
- 插入、删除不用移动节点,改变节点中的指针即可
- 查找节点时链式存储比顺序存储慢
- 每个节点由数据域和指针域组成
索引、散列存储结构:
索引存储:
- 除了建立存储节点信息,建立附加的索引表来标识节点的地址,索引表由若干索引项组成
- 用节点的索引号来确定节点的存储地址,检索速度快,但增加了附加的索引表,会占用较多的存储空间
散列存储:
hash 存储,将数据元素存储位置与关键码之间建立确定对应关系。节点的关键码值决定节点的存储地址。
2.2 逻辑结构
数据的逻辑结构包括两个要素:数据元素和关系,关系指数据元素之间的逻辑关系
逻辑结构包括:线性结构和非线性结构
线性结构:
1、 最常用的数据结构,特点是数据元素存在一对一的线性关系;
2、 线性数据结构常见的有:数组,线性表,队列,链表和栈;
非线性结构:
二维数组,多维数组,广义表,树结构,图结构
3、数据结构和算法的关系
数据 data 结构 structure 是一门研究组织数据方式的学科
程序 = 数据结构 + 算法
数据结构是算法的基础