数据结构和算法
一、数据结构入门
1.基本概念。
数据项:最小的数据单位。原子性
数据元素:数据的基本单位。
数据对象:数据元素的集合。
2.数据结构类型。数据结构=逻辑结构+存储结构
2.1数据的逻辑结构
分类一:线性结构(线性表、栈、队列、数组)和非线性结构(树、图)。
分类二:集合结构(确定性、唯一性、无序性)、线性结构(一对一)、树状结构(一对多)、网络结构(多对多)。
2.2数据的存储结构
顺序存储:数组。查询快,增删慢,需要移动元素。
链式存储:逻辑上相邻,物理上不相邻,数据+指针。增删快,查询慢。
索引存储:除建立存储节点信息外,还建立附加的索引表来标识节点的地址。
散列存储:根据节点的关键字直接计算出该节点的存储地址。hash,查询、添加快。
2.3 逻辑结构是唯一的,一种逻辑结构可以有多种存储结构实现。
运算的实现依赖于存储结构。
二、算法和复杂度简介
1.算法:输入、输出、可行性、有穷性、确定性。
评估算法的优劣:时间复杂度和空间复杂度。
2.时间复杂度:问题的规模
时间频度
时间复杂度:T(n) = O(f(n))。
3.空间复杂度
S(n) = O(g(n))
三、线性表
1.