第1章 欢迎学习玩转数据结构
为什么要学习数据结构
- 数据结构是所有计算机相关专业的同学必学的课程
- 数据结构研究的是数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据结构或修改数据
线性结构 | 树结构 | 图结构 |
---|---|---|
数组、栈、队列、链表、哈希表… | 二叉树、二分搜索树、AVL、红黑树、Treap、Splay、堆、Trie、线段树、K-D树、并查集、哈夫曼树… | 邻接矩阵、邻接表 |
我们需要根据不同的情况灵活地选择最合适的数据结构
在计算机的世界里,数据结构无处不在
- 数据库:
- AVL、红黑树、Treap、伸展树、B树
- 哈希表
- 操作系统:(快速在多任务间切换)
- 系统栈
- 优先队列:堆
- 文件压缩:
- 哈夫曼树
- 通讯录:
- Trie:前缀树
- 图论算法:(寻路算法)
- DFS:使用栈
- BFS:使用队列
近乎每一本算法教材,都包含大量篇幅讲解数据结构
注意事项
- 语言上:选择Java(完全面向对象)
- 脚本语言可以用来学习数据结构的原理,但不适合用于考察数据结构(和算法)的性能。