Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Codes of my MOOC Course <Play Data Structures in Java>. Updated contents and practices are also included. 我在慕课网上的课程《Java语言玩转数据结构》示例代码。课程的更多更新内容及辅助练习也将逐步添加进这个代码仓。

NotificationsYou must be signed in to change notification settings

CoolCood/Play-with-Data-Structures

 
 

Repository files navigation

大家好, 欢迎大家来到我在慕课网上的实战课程《玩儿转数据结构》的官方代码仓。这个代码仓将不仅仅包含课程的所有源代码,还将发布课程的更新相关内容,勘误信息以及计划的更多可以丰富课程的内容,如更多分享,多多练习,等等等等。课程全部使用Java语言讲解,课程代码仓暂时只提供Java语言版本。

大家可以下载、运行、测试、修改。如果你发现了任何bug,或者对课程中的任何内容有意见或建议,欢迎和我联系:)

个人网站liuyubobobo.com [废弃重整中...]

电子邮件liuyubobobo@gmail.com

微博:刘宇波bobo http://weibo.com/liuyubobobo

知乎:刘宇波 http://www.zhihu.com/people/liuyubobobo

知乎专栏:是不是很酷 https://zhuanlan.zhihu.com/liuyubobobo

个人公众号:是不是很酷:)

QRCode

更多说明

  • 每一章后面有补充代码的部分。课程本身已经独立成体系,补充内容只是额外拓展,不影响课程整体的学习。对于课程整体学习,可以忽略。建议先完成课程必要部分学习,再酌情研究补充内容。

  • 对于补充代码部分的内容,大多是课程中提及的拓展内容。对于这部分内容,我会不定期更新代码,但不保证时间。放在课程目录中,主要是供大家拓展思路使用。大家也可以理解成是思考练习,可以自行编写代码练习完成补充内容,相信是很好的编程锻炼:)当然,有任何问题可以在问答区进行提问。

  • 课程讲义的PDF版本不在github上提供,大家可以在慕课网上 "下载 -> 查看讲师源码" 中各个章节文件夹下找到。

  • 请不要使用github,微信,QQ,邮件进行答疑。 请使用课程问答区进行答疑。谢谢!

更多相关代码仓

更多推荐

ds-vis

课程源码目录

第一章 欢迎大家学习《玩儿转数据结构》[无代码]
1-1 欢迎大家学习《玩儿转数据结构》[无代码]
1-2 学习数据结构(和算法)到底有没有用?[无代码]
1-3 课程学习的更多注意事项[无代码]
1-4 课程编程环境的安装[无代码]
1-5 关于课程的其他语言支持:Python 和 C++[无代码]
第二章 不要小瞧数组章节Java源码
2-1 使用Java中的数组Java
2-2 二次封装属于我们自己的数组Java
2-3 向数组中添加元素Java
2-4 数组中查询元素和修改元素Java
2-5 包含,搜索和删除Java
2-6 使用泛型Java
2-7 动态数组Java
2-8 简单的复杂度分析[无代码]
2-9 均摊复杂度和防止复杂度的震荡Java
第三章 栈和队列章节Java源码
3-1 栈和栈的应用:撤销操作和系统栈[无代码]
3-2 栈的基本实现Java
3-3 栈的另一个应用:括号匹配Java
3-4 关于Leetcode的更多说明Java
3-5 数组队列Java
3-6 循环队列Java
3-7 循环队列的实现Java
3-8 数组队列和循环队列的比较Java
补充代码1: 不浪费一个空间的循环队列Java
补充代码2: 没有size成员变量的循环队列Java
第四章 最基础的动态数据结构:链表章节Java源码
4-1 什么是链表Java
4-2 在链表中添加元素Java
4-3 使用链表的虚拟头结点Java
4-4 链表的遍历,查询和修改Java
4-5 从链表中删除元素Java
4-6 使用链表实现栈Java
4-7 带有尾指针的链表:使用链表实现队列Java
第五章 透过链表看递归章节Java源码
5-1 Leetcode中和链表相关的问题Java
5-2 测试自己的Leetcode链表代码Java
5-3 递归基础与递归的宏观语意Java
5-4 链表与递归Java
5-5 递归运行的机制:递归的微观解读[无代码]
5-6 递归算法的调试Java
5-7 更多和链表相关的问题[无代码]
补充代码1: 单链表的递归实现Java
补充代码2: 斯坦福大学单链表的18个问题PDF参见慕课网上讲师源代码
补充代码3: 双链表[整理中,敬请期待]
补充代码4: 循环双链表[整理中,敬请期待]
补充代码5: 数组链表[整理中,敬请期待]
第六章 二分搜索树章节Java源码
6-1 为什么要研究树结构[无代码]
6-2 二分搜索树基础Java
6-3 向二分搜索树中添加元素Java
6-4 改进添加操作:深入理解递归终止条件Java
6-5 二分搜索树的查询操作Java
6-6 二分搜索树的前序遍历Java
6-7 二分搜索树的中序遍历和后序遍历Java
6-8 深入理解二分搜索树的前中后序遍历[无代码]
6-9 二分搜索树前序遍历的非递归实现Java
6-10 二分搜索树的层序遍历Java
6-11 删除二分搜索树的最大元素和最小元素Java
6-12 删除二分搜索树的任意元素Java
6-13 更多二分搜索树相关话题[无代码]
补充代码1: 斯坦福大学Binary Tree相关问题PDF参见慕课网上讲师源代码
补充代码2: 斯坦福大学Tree List相关问题PDF参见慕课网上讲师源代码
补充代码3: 二叉树前中后序非递归遍历的经典实现Java
补充代码4: 模拟系统栈前中后序遍历的非递归实现玩转算法面试,第六章2,3小节
补充代码5: 二叉树Morris遍历前中后序实现Java
补充代码6: 二分搜索树其他方法的非递归实现[整理中,敬请期待]
补充代码7: 前驱和后继操作[整理中,敬请期待]
补充代码8: floor和ceil操作[整理中,敬请期待]
补充代码9: 节点内维护size的二分搜索树[整理中,敬请期待]
补充代码10: rank和select操作[整理中,敬请期待]
补充代码11: 节点内维护depth的二分搜索树[整理中,敬请期待]
补充代码12: 节点内维护count的二分搜索树
(支持重复元素的二分搜索树)
[整理中,敬请期待]
补充代码13: 有重复元素节点的二分搜索树
(另一种支持重复元素的二分搜索树实现)
[整理中,敬请期待]
第七章 集合和映射章节Java源码
7-1 集合基础和基于二分搜索树的集合实现Java
7-2 基于链表的集合实现Java
7-3 集合类的复杂度分析Java
7-4 Leetcode中的集合问题和更多集合相关问题Java
7-5 映射基础Java
7-6 基于链表的映射实现Java
7-7 基于二分搜索树的映射实现Java
7-8 映射的复杂度分析和更多映射相关问题Java
7-9 Leetcode上更多集合和映射的问题Java
补充代码1: 更完整的基于二分搜索树的有序集合[整理中,敬请期待]
补充代码2: 不同底层实现的有序集合对比[整理中,敬请期待]
补充代码3: 更完整的基于二分搜索树的有序映射[整理中,敬请期待]
补充代码4: 不同底层实现的有序映射对比[整理中,敬请期待]
补充代码5: 多重集合[整理中,敬请期待]
补充代码6: 多重映射[整理中,敬请期待]
补充代码7: 基于映射实现的集合[整理中,敬请期待]
第八章 堆和优先队列章节Java源码
8-1 什么是优先队列[无代码]
8-2 堆的基础表示Java
8-3 向堆中添加元素和Sift UpJava
8-4 从堆中取出元素和Sift DownJava
8-5 Heapify 和 ReplaceJava
8-6 基于堆的优先队列Java
8-7 Leetcode上优先队列相关问题Java
8-8 Java中的PriorityQueueJava
8-9 和堆相关的更多话题和广义队列[无代码]
补充代码1: 普通线性结构和顺序线性结构实现的优先队列[整理中,敬请期待]
补充代码2: 最小堆[整理中,敬请期待]
补充代码3: 堆排序[整理中,敬请期待]
补充代码4: 索引堆[整理中,敬请期待]
补充代码5: 双向优先队列[整理中,敬请期待]
补充代码6: 多叉堆[整理中,敬请期待]
补充代码7: 二项堆[整理中,敬请期待]
补充代码8: 斐波那契堆[整理中,敬请期待]
补充代码9: 基于事件堆的粒子检测碰撞[整理中,敬请期待]
第九章 线段树章节Java源码
9-1 什么是线段树[无代码]
9-2 线段树基础表示Java
9-3 创建线段树Java
9-4 线段树中的区间查询Java
9-5 Leetcode上线段树相关的问题Java
9-6 线段树中的更新操作Java
9-7 更多线段树相关的话题[无代码]
补充代码1: 使用节点表示的线段树[整理中,敬请期待]
补充代码2: 链式存储的线段树[整理中,敬请期待]
补充代码3: 动态线段树[整理中,敬请期待]
补充代码4: 线段树的懒惰传播[整理中,敬请期待]
补充代码5: 二维线段树[整理中,敬请期待]
补充代码6: 树状数组(Binary Index Tree)[整理中,敬请期待]
补充代码7: RMQ问题[整理中,敬请期待]
第十章 Trie章节Java源码
10-1 什么是Trie字典树[无代码]
10-2 Trie字典树基础Java
10-3 Trie字典树的查询Java
10-4 Trie字典树的前缀查询Java
10-5 Trie字典树和简单的模式匹配Java
10-6 Trie字典树和字符串映射Java
10-7 更多和Trie字典树相关的话题[无代码]
10-8 [文字补充] 基于哈希表或者数组的TrieJava
补充代码1: Trie的递归实现Java
补充代码2: 使用Trie删除元素Java
补充代码3: TrieSet和TrieMap[整理中,敬请期待]
补充代码4: 压缩字典树[整理中,敬请期待]
补充代码5: 三分搜索Trie (Ternary Search Trie)[整理中,敬请期待]
补充代码6: 子串查询算法[整理中,敬请期待]
补充代码7: 文件压缩算法[整理中,敬请期待]
补充代码8: 模式匹配算法[整理中,敬请期待]
第十一章 并查集章节Java源码
11-1 什么是并查集Java
11-2 Quick FindJava
11-3 Quick UnionJava
11-4 基于size的优化Java
11-5 基于rank的优化Java
11-6 路径压缩Java
11-7 更多和并查集相关的话题Java
第十二章 平衡树和AVL章节Java源码
12-1 平衡树和AVL[无代码]
12-2 计算节点的高度和平衡因子Java
12-3 检查二分搜索树性质和平衡性Java
12-4 旋转操作的基本原理Java
12-5 左旋转和右旋转的实现Java
12-6 LR 和 RLJava
12-7 从AVL树中删除元素Java
12-8 基于AVL树的集合和映射Java
补充代码1: AVL树的优化[整理中,敬请期待]
第十三章 红黑树章节Java源码
13-1 红黑树与2-3树[无代码]
13-2 2-3树的绝对平衡性[无代码]
13-3 红黑树与2-3树的等价性Java
13-4 红黑树的基本性质和复杂度分析[无代码]
13-5 保持根节点为黑色和左旋转Java
13-6 颜色翻转和右旋转Java
13-7 红黑树中添加新元素Java
13-8 红黑树的性能测试Java
13-9 更多红黑树相关的话题[无代码]
13-10 [文字补充] 红黑树任何不平衡都可以在三次旋转内解决?[无代码]
补充代码1: 红黑树中的删除最大元素[整理中,敬请期待]
补充代码2: 红黑树中的删除最小元素[整理中,敬请期待]
补充代码3: 红黑树中的删除任意元素[整理中,敬请期待]
补充代码4: 基于红黑树的集合和映射[整理中,敬请期待]
补充代码5: 右倾红黑树[整理中,敬请期待]
补充代码6: 《算法导论》中红黑树的实现[整理中,敬请期待]
补充代码7: 2-3 树的实现[整理中,敬请期待]
补充代码8: 伸展树 Splay Tree[整理中,敬请期待]
第十四章 哈希表章节Java源码
14-1 哈希表基础Java
14-2 哈希函数[无代码]
14-3 Java中的hashCode方法Java
14-4 链地址法 Seperate Chaining[无代码]
14-5 实现属于我们自己的哈希表Java
14-6 哈希表的动态空间处理与复杂度分析Java
14-7 哈希表更复杂的动态空间处理方法Java
14-8 更多哈希冲突的处理方法[无代码]
补充代码1: 每个地址存储链表的哈希表[整理中,敬请期待]
补充代码2: 每个地址可以从链表转换到红黑树的哈希表[整理中,敬请期待]
补充代码3: 基于哈希表的无序映射和无序集合[整理中,敬请期待]
补充代码4: 开放地址线性探测解决哈希冲突[整理中,敬请期待]
补充代码5: 开放地址二次探测解决哈希冲突[整理中,敬请期待]
补充代码6: 开放地址双重哈希解决哈希冲突[整理中,敬请期待]
补充代码7: 再哈希法解决哈希冲突[整理中,敬请期待]
补充代码8: Coalesced Hashing[整理中,敬请期待]
第十五章 结语[无代码]
15-1 更广阔的数据结构的世界,大家加油![无代码]
15-2 [文字补充]更多数据结构的练习:)[无代码]
第十六章 补充章节:B类树[更新中,敬请期待]
[由于B类树不是课程最初规划内容][更新时间待定,敬请期待]

课程讲义的PDF版本不在github上提供,大家可以在慕课网上 "下载 -> 查看讲师源码" 中各个章节文件夹下找到。

大家加油!:)

About

Codes of my MOOC Course <Play Data Structures in Java>. Updated contents and practices are also included. 我在慕课网上的课程《Java语言玩转数据结构》示例代码。课程的更多更新内容及辅助练习也将逐步添加进这个代码仓。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java100.0%

[8]ページ先頭

©2009-2025 Movatter.jp