1.什么是数据结构
数据结构研究的是数据如何在计算机中进行组织和存储,从而使得我们能够高效的读取和修改数据。
2.数据结构的知识结构
2.1 线性结构 数组、链表、哈希表 栈、队列
2.2 树结构 二叉树、二叉搜索树、Trie、Treap AVL、红黑树、线段树、K-D树、并查集、哈夫曼树(60%)
2.3 图结构 邻接表、邻接矩阵
3.学习数据结构的目的
能够灵活的应用数据结构,在不同的场景下选择最适合的数据。
4.数据结构的应用
4.1 数据库,是由平衡树和哈希表组成的。
4.2 操作系统,以多任务切换为例,使用到了系统栈和优先队列(用堆实现的)。
4.3 文件压缩(文件格式)。不同的格式使用到了不同的数据结构。其中最基本的压缩就是使用哈夫曼树。
4.4 通讯录。如何快速的查找联系人?通过Trie(前缀树)来解决。
4.5 游戏中的寻路。可通过DFS(栈)、DFS(队列)来解决。
5.数据结构 + 算法 = 程序。数据结构也是算法的基石。
6.课程所需预备知识:Java语言基础(面向对象)。
7.课程内容
7.1 数组、栈、队列、链表、二叉搜索树、堆(面向面试)、线段树、Trie、并查集(竞赛常考)、AVL、红黑树、哈希表(概念和性能分析,不要求白板编程)
前面的基础部分,会涉及到递归、调试、复杂度分析(包括均摊复杂度分析)。
7.2 不包括图,是因为图的存储很简单,图论领域以算法为主。
7.3 目标:实现每个数据结构,从而创建自己的数据结构库。
网友评论