数据结构与算法 第一章绪论笔记

思维导图:

文字比较乱建议直接思维导图食用

数据结构与算法 第一章绪论笔记_第1张图片

数据结构与算法

研究非数值程序设计问题中计算机对操作对象关系和操作

数据结构包括三个方面:逻辑结构、物理结构、数据的运算和实现(对数据元素可以施加的操作以及这些操作相应的存储结构上的实现)

数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合
数据元素是数据的基本单位
数据项是数据的最小单位
数据项组成数据元素
数据对象性质相同的数据元素的集合
数据对象数据的子集
数据结构数据对象加数据元素间的逻辑关系
学生表(数据对象)学生个人信息(数据元素)姓名学号(数据项)

什么是逻辑结构?物理结构(存储结构)?

逻辑结构:描述数据元素之间的逻辑关系(集合结构、线性结构、图形结构、树形结构)
物理结构:数据元素及其关系在计算机存储空间的存储方式

逻辑结构物理结构数据结构之间的关系

物理结构是数据结构的实现,逻辑结构是数据结构的抽象,物理结构是逻辑结构的映像

什么是线性关系?非线性关系?

线性关系(有且只有一个开始节点一个终端节点,除了开始节点和尾节点其他数据元素都有唯一的前驱和后继,一对一关系):线性表、栈、队列、双端队列、数组和串
非线性关系(一个节点可能有多个前驱和后继,一对多,多对多):树形结构、图形结构、多维数组

物理结构中四种存储方式及含义

顺序存储:在计算机存储空间中用一组地址连续的存储单元依次存储线性表中的各个元素,顺序存储是一种随机存储,可以随机存取数据元素,数据元素之间的逻辑关系由元素的存储位置来表示,通常用数组实现,数组长度是存放线性表的存储空间的长度,分配后是不可变的,线性表的长度是线性表元素的个数,长度是可变的。
优点:可以快速存储表中任一位置元素、不需要额外的存储空间存储数据元素之间的逻辑关系
缺点:插入删除需要移动数据元素,线性表长度变化过大时,难以确定存储空间的容量、容易造成存储空间碎片

链式存储:在计算机存储空间中用一组地址可以是连续也可以不连续的存储单元存储线性表中的各个元素,数据元素之间的逻辑关系由指针来表示,通常用链表实现
优点:插入删除不需要移动数据元素
缺点:查找元素需要从头到尾,不支持随机访问

索引存储:在存储节点信息的同时,还建立附加的索引表

散列存储:根据节点的关键字直接计算出该节点的存储地址

数据类型的含义

数据类型是一个值的集合和在这个集合上一组操作的总称

抽象数据类型的含义

抽象数据类型是将一个具体问题抽象成数学模型及定义在该模型上的一组操作(ADT数据对象、数据关系、操作方法)

算法

算法具有:确定性、有穷性、可行性、输入、输出
好的算法具有:可读性、正确性、健壮性、高效性

算法的效率:时间复杂度和空间复杂度来衡量

你可能感兴趣的:(笔记,数据结构,算法)