为什么要学习数据结构
- 数据结构研究的是数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据或者修改数据。
数据结构可以分成三种结构
- 线性结构
- 树结构
- 图结构
线性结构
- 数组
- 栈
- 队列
- 链表
- 哈希表
树结构
- 二叉树
- 二分搜索树
- AVL
- 红黑树
- Treap
- Splay
- 堆
- Trie
- 线段树
- K-D树
- 并查集
- 哈夫曼树
- ......
图结构
- 邻接矩阵
- 邻接表
我们需要根据应用的不同,灵活选择最合适的数据结构
在计算机的世界里,数据结构无处不在
-
数据库 :
- 树结构:
- AVL;红黑树;等之类的
- 哈希表
- 树结构:
-
操作系统:
- 快速在多任务间切换
- 系统栈
- 优先队列:堆
- 快速在多任务间切换
-
文件压缩
- 哈夫曼树 简单文件压缩方法
-
通讯录
- Trie-前缀树
-
图算法:
- DFS:使用栈
- BFS:使用队列
名言:数据结构+算法=程序
对于脚本语言可以了解数据结构原理,但是不能去分析性能。因为脚本语言的写法比逻辑更重要
- ex:
python语言中
arr=[]
for i in range(10):
arr.append(i)
arr=[i for in range(10)]
写法2的性能明显优于方法1.但方法一是标准的逻辑写法。编译语言java c++ 之类的也有类似问题,但不明显可以忽略。
网友评论