数据结构起源
1968年,数据结构作为一门独立的课程
程序设计=数据机构+算法
逻辑结构与物理结构
逻辑结构:
a)集合结构:所有元素同属一个集合,除此之外,彼此之间别无其他关系(set)
b)线性结构:数据元素之间一一对应的关系(LinkedList<T>)
c)树形结构:数据元素之间存在一对多的层次关系
用途:
AVL树 : 最早的平衡二叉树之一。应用相对其他数据结构比较少。windows对进程地址空间的管理用到了AVL树。
红黑树: 平衡二叉树,广泛用在C++的STL中。如map和set都是用红黑树实现的。
B/B+树: 用在磁盘文件组织 数据索引和数据库索引。
Trie树(字典树): 用在统计和排序大量字符串,如自动机。
d)图形结构:数据元素是多对多的关系
图的应用(最小生成树、拓扑排序、关键路径、最短路径)
物理结构
a)顺序存储结构:数据存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。(数组)
b)链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以使连续的,也可以是不连续的。
本章结束语
有些东西可能是难,但是在掌握了的人眼里,这根本不算什么,“就那么回事呀”。只要你相信自己一定可以学得会、学得好,既然无数人已经掌握了,你凭什么不行。