Part 1
1.基本知识
数据:其实是描述客观事实的符号,是计算机可以操作的对象,具有两个前提:可以输入到计算机中,能被计算机程序处理。
数据元素:组成数据,具有一定意义的基本单元,在计算机中常作为整体处理。
数据项:数据不可分割的最小单元,组成了数据元素。
数据对象:数据的子集,是具有相同性质的数据元素的集合。
数据结构:结构指不同数据元素之间存在的特定关系;数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
2.逻辑结构与物理结构
逻辑结构有四种:集合结构,线性结构,树形结构,图形结构;其针对具体问题,为了解决某个问题,先理解问题再选择合适的数据结构来表达数据元素之间的逻辑关系。
物理结构:数据的逻辑结构在计算机中的存储形式,也叫做存储结构;有两种形式:顺序存储和链式存储。
顺序存储结构:将数据元素存放在地址连续的存储单元当中,数据间逻辑关系与物理关系一致。
链式存储结构:数据元素存储在任意的存储单元里,存储单元可以连续也可以不连续,因此需要使用指针来存放数据元素的地址,通过地址来找到相关联数据元素的位置。
3.抽象数据类型
数据类型:性质相同的值的集合以及定义在此集合上的操作的总称。
抽象数据类型:指一个数据模型及定义在该模型上的一组操作,体现了程序设计中问题分解、抽象和信息隐藏的特性。
Part 2
1.算法
算法描述解决特定问题的求解步骤,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
特性:输入、输出、有穷性、确定性和可行性。
设计要求:正确性、可读性、健壮性、效率高和存储量低。
2.算法时间复杂度
推导大O阶:常数1代替所有加法常数->只保留最高阶项->最高阶相乘的常数置1。
循环的时间复杂度等于:循环体的复杂度*循环运行的次数。
Part 3
1.线性表
线性表是零个或多个数据元素的有限序列。
顺序存储结构:优点是不需要为元素间逻辑关系增加额外存储空间而且可以来快速存取任意位置元素;缺点是插入和删除需要一定大量元素,线性表长度变化大时难以确定存储空间容量。
链式存储结构:数据元素的存储映射为结点,结点包括两部分信息:数据元素本身信息即数据域和直接后继的存储位置即指针或链;N个结点组成一个链表,单链表的每个结点中只包括一个指针域。
链表第一个结点中存储位置为头指针,最后一个结点指针为“NULL”。