
本课程是一套专为Java开发者及计算机专业学生量身打造的系统性数据结构与算法实战课程。课程以“夯实基础、深入原理、代码实现、刷题实战”为核心,系统性地串联起从基础数据结构(数组、链表、栈、队列)、核心算法(递归、排序、查找),到高级数据结构(树、堆、哈希表)的完整知识体系。你将不仅掌握数据结构与算法的理论基础,更能通过大量LeetCode真题和手写代码实战,深刻理解其底层原理,提升编程内功,最终具备解决复杂工程问题和应对技术面试的能力。
核心学习路径
1. 基础数据结构与算法入门
算法基础:从课程导学开始,学习如何衡量算法好坏,深入理解时间复杂度与大O表示法,为后续学习打下坚实的理论基础。
数组与链表:系统学习数组(包括动态数组、二维数组)和链表(单向、双向、环形、带哨兵)的原理与实现。掌握其增、删、改、查等核心操作,并理解缓存与局部性原理。
递归思想:深入理解递归的定义、执行过程与时间复杂度分析(主定理、展开法)。通过阶乘、斐波那契、汉诺塔、杨辉三角等经典案例,掌握单路与多路递归,并学习如何优化递归以避免爆栈。
2. 线性数据结构精讲
栈与队列:学习栈和队列这两种特殊的线性表。你将亲手使用数组和链表实现它们,并掌握其在解决实际问题中的应用,如括号匹配、表达式求值、二叉树层序遍历等。
双端队列与优先级队列:深入学习双端队列(Deque)的实现与应用。重点掌握优先级队列及其底层实现——堆(Heap),学习堆的构建(heapify)、增删改查操作,并解决“求数据流中位数”等经典问题。
阻塞队列:探讨多线程环境下的阻塞队列,通过单锁和双锁的实现方式,理解并发编程中的线程安全问题。
3. 树形结构深度剖析
二叉树基础:系统学习二叉树的定义、性质及遍历方式(前、中、后序的深度优先遍历和层序遍历),掌握递归与非递归两种实现方法。
二叉搜索树(BST):深入理解二叉搜索树的特性,实现其查找(get)、插入(put)、删除(remove)等核心操作,并学习范围查询、判断合法性等高级应用。
平衡树(AVL & 红黑树):深入剖析AVL树和红黑树这两种自平衡二叉搜索树。你将学习它们如何通过旋转等操作维持平衡,并亲手实现其插入和删除逻辑,理解其在JDK源码(如HashMap)中的广泛应用。
B树:了解B树的历史与特性,学习其节点结构、查找、插入(split)和删除(merge/rotate)操作,理解其在数据库和文件系统中的重要作用。
4. 综合实战与LeetCode刷题
LeetCode真题精讲:课程的核心亮点。贯穿始终的是大量LeetCode经典题目的详细解析与代码实现。你将系统性地攻克:
查找类:二分查找及其变种(搜索插入位置、搜索开始结束位置)。
链表类:反转链表、删除节点、合并有序链表、判断回文与环路等。
树类:二叉树的最大/最小深度、对称二叉树、翻转二叉树、根据遍历结果重建二叉树、二叉搜索树的最近公共祖先等。
堆与排序类:堆排序、求数组第K大元素等。
代码与资料:课程配套了完整的Java项目源码、详细的Markdown文档和丰富的可视化学习资料,帮助你更好地梳理知识,快速上手实践。
课程亮点
体系完整,由浅入深:课程从最基础的数组、链表讲起,逐步深入到红黑树、B树等高级数据结构,路径清晰,循序渐进,适合不同基础的学员。
原理与实战并重:不仅讲解“是什么”和“怎么用”,更注重“为什么”,深入剖析底层原理。同时,通过大量LeetCode题目进行实战演练,真正做到学以致用。
代码驱动,手写实现:拒绝“纸上谈兵”,课程强调动手编码。你将跟随视频,从零开始手写每一个数据结构和算法,深刻理解其内部机制。
资料丰富,可视化学习:配套了项目源码、学习笔记和多种可视化工具,让抽象的算法和数据结构变得直观易懂,极大地提升学习效率。
课程目录:
Java数据结构
+—代码
| +—java
| | | pom.xml
| | |
| | +—.idea
| | | | .gitignore
| | | | compiler.xml
| | | | encodings.xml
| | | | jarRepositories.xml
| | | | misc.xml
| | | | uiDesigner.xml
| | | | workspace.xml
| | | |
| | | +—artifacts
| | | | unnamed.xml
| | | |
| | | +—codeStyles
| | | | codeStyleConfig.xml
| | | | Project.xml
| | | |
| | | \—dictionaries
| | | Lenovo.xml
| | |
| | +—src
| | | +—main
| | | | +—java
| | | | | \—com
| | | | | \—itheima
| | | | | +—algorithm
| | | | | | +—binarysearch
| | | | | | | BinarySearch.java
| | | | | | | E01Leetcode704.java
| | | | | | | E02Leetcode35.java
| | | | | | | E03Leetcode34.java
| | | | | | | LinearSearch.java
| | | | | | |
| | | | | | +—btree
| | | | | | | BTree.java
| | | | | | |
| | | | | | +—recursion_multi
| | | | | | | E01Fibonacci.java
| | | | | | | E02HanoiTower.java
| | | | | | | E03PascalTriangle.java
| | | | | | |
| | | | | | \—recursion_single
| | | | | | E01Factorial.java
| | | | | | E02ReversePrintString.java
| | | | | | E03BinarySearch.java
| | | | | | E04BubbleSort.java
| | | | | | E05InsertionSort.java
| | | | | | E06Sum.java
| | | | | |
| | | | | +—datastructure
| | | | | | +—array
| | | | | | | DynamicArray.java
| | | | | | | E01Merge2SortedArray.java
| | | | | | | E02Leetcode26.java
| | | | | | |
| | | | | | +—avltree
| | | | | | | AVLTree.java
| | | | | | |
| | | | | | +—binarysearchtree
| | | | | | | BSTTree1.java
| | | | | | | BSTTree2.java
| | | | | | | E02Leetcode701.java
| | | | | | | E04Leetcode98.java
| | | | | | | E05Leetcode938.java
| | | | | | | E06Leetcode1008.java
| | | | | | | E07Leetcode235.java
| | | | | | | TreeNode.java
| | | | | | |
| | | | | | +—binarytree
| | | | | | | E01Leetcode144.java
| | | | | | | E02Leetcode94.java
| | | | | | | E03Leetcode145.java
| | | | | | | E04Leetcode101.java
| | | | | | | E05Leetcode104_1.java
| | | | | | | E05Leetcode104_2.java
| | | | | | | E05Leetcode104_3.java
| | | | | | | E06Leetcode111_1.java
| | | | | | | E06Leetcode111_2.java
| | | | | | | E07Leetcode226.java
| | | | | | | E08ExpressionTree.java
| | | | | | | E09Leetcode105.java
| | | | | | | E10Leetcode106.java
| | | | | | | TreeNode.java
| | | | | | | TreeTraversal.java
| | | | | | |
| | | | | | +—blockingqueue
| | | | | | | BlockingQueue.java
| | | | | | | BlockingQueue1.java
| | | | | | | BlockingQueue2.java
| | | | | | |
| | | | | | +—circular
| | | | | | | DoublyLinkedListSentinel.java
| | | | | | |
| | | | | | +—deque
| | | | | | | ArrayDeque1.java
| | | | | | | ArrayDeque2.java
| | | | | | | ArrayDeque3.java
| | | | | | | Deque.java
| | | | | | | E01Leetcode103.java
| | | | | | | LinkedListDeque.java
| | | | | | |
| | | | | | +—heap
| | | | | | | E01HeapSort.java
| | | | | | | E02Leetcode215.java
| | | | | | | E03Leetcode703.java
| | | | | | | E04Leetcode295_1.java
| | | | | | | E04Leetcode295_2.java
| | | | | | | Heap.java
| | | | | | | MaxHeap.java
| | | | | | | MinHeap.java
| | | | | | |
| | | | | | +—linkedlist
| | | | | | | DoublyLinkedListSentinel.java
| | | | | | | E01Leetcode206.java
| | | | | | | E02Leetcode203.java
| | | | | | | E03Leetcode19.java
| | | | | | | E04Leetcode83.java
| | | | | | | E05Leetcode82.java
| | | | | | | E06Leetcode21.java
| | | | | | | E07Leetcode23.java
| | | | | | | E08Leetcode876.java
| | | | | | | E09Leetcode234.java
| | | | | | | E10Leetcode141.java
| | | | | | | E11Leetcode142.java
| | | | | | | Ex1Leetcode237.java
| | | | | | | Ex2Leetcode160.java
| | | | | | | ListNode.java
| | | | | | | SinglyLinkedList.java
| | | | | | | SinglyLinkedListSentinel.java
| | | | | | |
| | | | | | +—priorityqueue
| | | | | | | E01Leetcode23.java
| | | | | | | Entry.java
| | | | | | | MinHeap.java
| | | | | | | Priority.java
| | | | | | | PriorityQueue1.java
| | | | | | | PriorityQueue2.java
| | | | | | | PriorityQueue3.java
| | | | | | | PriorityQueue4.java
| | | | | | |
| | | | | | +—queue
| | | | | | | ArrayQueue1.java
| | | | | | | ArrayQueue2.java
| | | | | | | ArrayQueue3.java
| | | | | | | E01Leetcode102.java
| | | | | | | Ex1Leetcode622.java
| | | | | | | Ex2Leetcode622.java
| | | | | | | Ex3Leetcode622.java
| | | | | | | LinkedListQueue.java
| | | | | | | Queue.java
| | | | | | |
| | | | | | +—redblacktree
| | | | | | | AVLTree.java
| | | | | | | RedBlackTree.java
| | | | | | |
| | | | | | \—stack
| | | | | | ArrayStack.java
| | | | | | CPU.java
| | | | | | E01Leetcode20.java
| | | | | | E02Leetcode150.java
| | | | | | E03InfixToSuffix.java
| | | | | | E04Leetcode232.java
| | | | | | E05Leetcode225.java
| | | | | | Ex1Factorial.java
| | | | | | Ex2Fibonacci.java
| | | | | | Ex3.java
| | | | | | LinkedListStack.java
| | | | | | Stack.java
| | | | | |
| | | | | \—temp
| | | | | +—array
| | | | | | Main.java
| | | | | |
| | | | | +—binarysearch
| | | | | | KthBigger.java
| | | | | | KthSmaller.java
| | | | | |
| | | | | +—list
| | | | | | NodeListSentinel.java
| | | | | | Test.java
| | | | | |
| | | | | \—recursion
| | | | | CharArraySwap.java
| | | | | ReversePrintNumber.java
| | | | | Test.java
| | | | |
| | | | \—resources
| | | \—test
| | | \—java
| | | \—com
| | | \—itheima
| | | +—algorithm
| | | | +—binarysearch
| | | | | TestBinarySearch.java
| | | | |
| | | | +—btree
| | | | | TestBTree.java
| | | | |
| | | | +—recursion_multi
| | | | | TestE01Fibonacci.java
| | | | |
| | | | \—recursion_single
| | | | TestE03BinarySearch.java
| | | | TestE04BubbleSort.java
| | | | TestE05InsertionSort.java
| | | |
| | | +—datastructure
| | | | +—array
| | | | | TestCacheLine.java
| | | | | TestDynamicArray.java
| | | | |
| | | | +—avltree
| | | | | TestAVLTree.java
| | | | |
| | | | +—binarysearchtree
| | | | | TestBSTTree1.java
| | | | | TestBSTTree2.java
| | | | |
| | | | +—binarytree
| | | | | TestE04Leetcode101.java
| | | | | TestE05Leetcode104_1.java
| | | | | TestE05Leetcode104_2.java
| | | | | TestE05Leetcode104_3.java
| | | | | TestE06Leetcode111_1.java
| | | | | TestE06Leetcode111_2.java
| | | | | TestE08ExpressionTree.java
| | | | |
| | | | +—blockingqueue
| | | | | TestBlockingQueue1.java
| | | | | TestThreadUnsafe.java
| | | | |
| | | | +—circular
| | | | | TestDoublyLinkedListSentinel.java
| | | | |
| | | | +—deque
| | | | | TestArrayDeque1.java
| | | | | TestArrayDeque2.java
| | | | | TestArrayDeque3.java
| | | | | TestLinkedListDeque.java
| | | | |
| | | | +—linkedlist
| | | | | TestDoublyLinkedListSentinel.java
| | | | | TestSinglyLinkedList.java
| | | | | TestSinglyLinkedListSentinel.java
| | | | |
| | | | +—priorityqueue
| | | | | TestPriorityQueue1.java
| | | | | TestPriorityQueue2.java
| | | | | TestPriorityQueue3.java
| | | | | TestPriorityQueue4.java
| | | | |
| | | | +—queue
| | | | | TestArrayQueue1.java
| | | | | TestArrayQueue2.java
| | | | | TestArrayQueue3.java
| | | | | TestLinkedListQueue.java
| | | | |
| | | | +—redblacktree
| | | | | TestRedBlackTree.java
| | | | |
| | | | \—stack
| | | | TestArrayStack.java
| | | | TestE02Leetcode150.java
| | | | TestLinkedListStack.java
| | | |
| | | +—lambda
| | | | Superclass.java
| | | | TestLambda.java
| | | | TestMethodCall.java
| | | |
| | | \—other
| | | GetNumber.java
| | | ObjectLayoutExample.java
| | | PassByValue.java
| | | TestGeneric.java
| | |
| | \—target
| | +—classes
| | | \—com
| | | \—itheima
| | | +—algorithm
| | | | +—binarysearch
| | | | | BinarySearch.class
| | | | | E01Leetcode704.class
| | | | | E02Leetcode35.class
| | | | | E03Leetcode34.class
| | | | | LinearSearch.class
| | | | |
| | | | +—btree
| | | | | BTree$Node.class
| | | | | BTree.class
| | | | | BTreeAnother$BTreeNode.class
| | | | | BTreeAnother.class
| | | | | Tree23Another$Node.class
| | | | | Tree23Another.class
| | | | |
| | | | +—recursion_multi
| | | | | E01Fibonacci.class
| | | | | E02HanoiTower.class
| | | | | E03PascalTriangle.class
| | | | |
| | | | \—recursion_single
| | | | E01Factorial.class
| | | | E02ReversePrintString.class
| | | | E03BinarySearch.class
| | | | E04BubbleSort.class
| | | | E05InsertionSort.class
| | | | E06Sum.class
| | | |
| | | +—datastructure
| | | | +—array
| | | | | DynamicArray$1.class
| | | | | DynamicArray.class
| | | | | E01Merge2SortedArray.class
| | | | | E02Leetcode26.class
| | | | |
| | | | +—avltree
| | | | | AVLTree$AVLNode.class
| | | | | AVLTree.class
| | | | |
| | | | +—binarysearchtree
| | | | | BSTTree1$BSTNode.class
| | | | | BSTTree1.class
| | | | | BSTTree2$BSTNode.class
| | | | | BSTTree2.class
| | | | | E02Leetcode701.class
| | | | | E04Leetcode98.class
| | | | | E05Leetcode938.class
| | | | | E06Leetcode1008.class
| | | | | E07Leetcode235.class
| | | | | TreeNode.class
| | | | |
| | | | +—binarytree
| | | | | E01Leetcode144.class
| | | | | E02Leetcode94.class
| | | | | E03Leetcode145.class
| | | | | E04Leetcode101.class
| | | | | E05Leetcode104_1.class
| | | | | E05Leetcode104_2.class
| | | | | E05Leetcode104_3.class
| | | | | E06Leetcode111_1.class
| | | | | E06Leetcode111_2.class
| | | | | E07Leetcode226.class
| | | | | E08ExpressionTree$TreeNode.class
| | | | | E08ExpressionTree.class
| | | | | E09Leetcode105.class
| | | | | E10Leetcode106.class
| | | | | TreeNode.class
| | | | | TreeTraversal.class
| | | | |
| | | | +—blockingqueue
| | | | | BlockingQueue.class
| | | | | BlockingQueue1.class
| | | | | BlockingQueue2.class
| | | | |
| | | | +—circular
| | | | | DoublyLinkedListSentinel$1.class
| | | | | DoublyLinkedListSentinel$Node.class
| | | | | DoublyLinkedListSentinel.class
| | | | |
| | | | +—deque
| | | | | ArrayDeque1$1.class
| | | | | ArrayDeque1.class
| | | | | ArrayDeque2$1.class
| | | | | ArrayDeque2.class
| | | | | ArrayDeque3$1.class
| | | | | ArrayDeque3.class
| | | | | Deque.class
| | | | | E01Leetcode103.class
| | | | | LinkedListDeque$1.class
| | | | | LinkedListDeque$Node.class
| | | | | LinkedListDeque.class
| | | | |
| | | | +—heap
| | | | | E01HeapSort.class
| | | | | E02Leetcode215.class
| | | | | E03Leetcode703.class
| | | | | E04Leetcode295_1.class
| | | | | E04Leetcode295_2.class
| | | | | Heap.class
| | | | | MaxHeap.class
| | | | | MinHeap.class
| | | | |
| | | | +—linkedlist
| | | | | DoublyLinkedListSentinel$1.class
| | | | | DoublyLinkedListSentinel$Node.class
| | | | | DoublyLinkedListSentinel.class
| | | | | E01Leetcode206$List.class
| | | | | E01Leetcode206.class
| | | | | E02Leetcode203.class
| | | | | E03Leetcode19.class
| | | | | E04Leetcode83.class
| | | | | E05Leetcode82.class
| | | | | E06Leetcode21.class
| | | | | E07Leetcode23.class
| | | | | E08Leetcode876.class
| | | | | E09Leetcode234.class
| | | | | E10Leetcode141.class
| | | | | E11Leetcode142.class
| | | | | Ex1Leetcode237.class
| | | | | Ex2Leetcode160.class
| | | | | ListNode.class
| | | | | SinglyLinkedList$Node.class
| | | | | SinglyLinkedList$NodeIterator.class
| | | | | SinglyLinkedList.class
| | | | | SinglyLinkedListSentinel$Node.class
| | | | | SinglyLinkedListSentinel$NodeIterator.class
| | | | | SinglyLinkedListSentinel.class
| | | | |
| | | | +—priorityqueue
| | | | | E01Leetcode23.class
| | | | | Entry.class
| | | | | MinHeap.class
| | | | | Priority.class
| | | | | PriorityQueue1.class
| | | | | PriorityQueue2.class
| | | | | PriorityQueue3.class
| | | | | PriorityQueue4.class
| | | | |
| | | | +—queue
| | | | | ArrayQueue1$1.class
| | | | | ArrayQueue1.class
| | | | | ArrayQueue2$1.class
| | | | | ArrayQueue2.class
| | | | | ArrayQueue3$1.class
| | | | | ArrayQueue3.class
| | | | | E01Leetcode102.class
| | | | | Ex1Leetcode622$Node.class
| | | | | Ex1Leetcode622.class
| | | | | Ex2Leetcode622.class
| | | | | Ex3Leetcode622.class
| | | | | LinkedListQueue$1.class
| | | | | LinkedListQueue$Node.class
| | | | | LinkedListQueue.class
| | | | | Queue.class
| | | | |
| | | | +—redblacktree
| | | | | AVLTree$Node.class
| | | | | AVLTree.class
| | | | | RedBlackTree$Color.class
| | | | | RedBlackTree$Node.class
| | | | | RedBlackTree.class
| | | | |
| | | | \—stack
| | | | ArrayStack$1.class
| | | | ArrayStack.class
| | | | CPU$Frame.class
| | | | CPU.class
| | | | E01Leetcode20.class
| | | | E02Leetcode150.class
| | | | E03InfixToSuffix.class
| | | | E04Leetcode232.class
| | | | E05Leetcode225.class
| | | | Ex1Factorial$Frame.class
| | | | Ex1Factorial.class
| | | | Ex2Fibonacci$Frame.class
| | | | Ex2Fibonacci.class
| | | | Ex3.class
| | | | LinkedListStack$1.class
| | | | LinkedListStack$Node.class
| | | | LinkedListStack.class
| | | | Stack.class
| | | |
| | | \—temp
| | | +—array
| | | | Main.class
| | | |
| | | +—binarysearch
| | | | KthBigger.class
| | | | KthSmaller.class
| | | |
| | | +—list
| | | | NodeListSentinel$1.class
| | | | NodeListSentinel$Node.class
| | | | NodeListSentinel.class
| | | | Test.class
| | | |
| | | \—recursion
| | | CharArraySwap.class
| | | ReversePrintNumber.class
| | | Test.class
| | |
| | +—generated-sources
| | | \—annotations
| | +—generated-test-sources
| | | \—test-annotations
| | \—test-classes
| | \—com
| | \—itheima
| | +—algorithm
| | | +—binarysearch
| | | | TestBinarySearch.class
| | | |
| | | +—btree
| | | | TestBTree.class
| | | |
| | | +—recursion_multi
| | | | TestE01Fibonacci.class
| | | |
| | | \—recursion_single
| | | TestE03BinarySearch.class
| | | TestE04BubbleSort.class
| | | TestE05InsertionSort.class
| | |
| | +—datastructure
| | | +—array
| | | | TestCacheLine.class
| | | | TestDynamicArray$ResultCollector.class
| | | | TestDynamicArray.class
| | | |
| | | +—avltree
| | | | TestAVLTree.class
| | | |
| | | +—binarysearchtree
| | | | TestBSTTree1.class
| | | | TestBSTTree2.class
| | | |
| | | +—binarytree
| | | | TestE04Leetcode101.class
| | | | TestE05Leetcode104_1.class
| | | | TestE05Leetcode104_2.class
| | | | TestE05Leetcode104_3.class
| | | | TestE06Leetcode111_1.class
| | | | TestE06Leetcode111_2.class
| | | | TestE08ExpressionTree.class
| | | |
| | | +—blockingqueue
| | | | TestBlockingQueue1.class
| | | | TestThreadUnsafe.class
| | | |
| | | +—circular
| | | | TestDoublyLinkedListSentinel.class
| | | |
| | | +—deque
| | | | TestArrayDeque1.class
| | | | TestArrayDeque2.class
| | | | TestArrayDeque3.class
| | | | TestLinkedListDeque.class
| | | |
| | | +—linkedlist
| | | | TestDoublyLinkedListSentinel.class
| | | | TestSinglyLinkedList.class
| | | | TestSinglyLinkedListSentinel.class
| | | |
| | | +—priorityqueue
| | | | TestPriorityQueue1.class
| | | | TestPriorityQueue2.class
| | | | TestPriorityQueue3.class
| | | | TestPriorityQueue4.class
| | | |
| | | +—queue
| | | | TestArrayQueue1.class
| | | | TestArrayQueue2.class
| | | | TestArrayQueue3.class
| | | | TestLinkedListQueue.class
| | | |
| | | +—redblacktree
| | | | TestRedBlackTree$MutableHeight.class
| | | | TestRedBlackTree.class
| | | |
| | | \—stack
| | | TestArrayStack.class
| | | TestE02Leetcode150.class
| | | TestLinkedListStack.class
| | |
| | +—lambda
| | | Subclass.class
| | | Superclass.class
| | | TestLambda$Student.class
| | | TestLambda.class
| | | TestMethodCall$Child.class
| | | TestMethodCall$Father.class
| | | TestMethodCall.class
| | |
| | \—other
| | GetNumber$1.class
| | GetNumber$2.class
| | GetNumber$Lock.class
| | GetNumber$Task.class
| | GetNumber.class
| | ObjectLayoutExample.class
| | PassByValue.class
| | TestGeneric$Animal.class
| | TestGeneric$C.class
| | TestGeneric$Cat.class
| | TestGeneric$Dog.class
| | TestGeneric$Plant.class
| | TestGeneric.class
| |
| \—scala
| | build.sbt
| |
| +—.bsp
| | sbt.json
| |
| +—.idea
| | | .gitignore
| | | misc.xml
| | | modules.xml
| | | sbt.xml
| | | scala_compiler.xml
| | | workspace.xml
| | |
| | +—codeStyles
| | | codeStyleConfig.xml
| | | Project.xml
| | |
| | +—libraries
| | | sbt__org_scala_lang_scala_library_2_13_10_jar.xml
| | |
| | \—modules
| | scala-build.iml
| | scala.iml
| |
| +—project
| | | build.properties
| | |
| | \—target
| | +—config-classes
| | | $af75c7f3fb61c16dfe21$.class
| | | $af75c7f3fb61c16dfe21.cache
| | | $af75c7f3fb61c16dfe21.class
| | | $ddc6fa2b6c579d28f3aa$.class
| | | $ddc6fa2b6c579d28f3aa.cache
| | | $ddc6fa2b6c579d28f3aa.class
| | | $f0de5a31c05ed41f0449$.class
| | | $f0de5a31c05ed41f0449.cache
| | | $f0de5a31c05ed41f0449.class
| | | $f9226d776ae8358c78b2$.class
| | | $f9226d776ae8358c78b2.cache
| | | $f9226d776ae8358c78b2.class
| | |
| | +—scala-2.12
| | | \—sbt-1.0
| | | +—sync
| | | | copy-resource
| | | |
| | | \—update
| | | \—update_cache_2.12
| | | inputs
| | | output
| | |
| | \—streams
| | +—compile
| | | +—bspReporter
| | | | \—_global
| | | | \—streams
| | | | out
| | | |
| | | +—compile
| | | | \—_global
| | | | \—streams
| | | | out
| | | |
| | | +—compileIncremental
| | | | \—_global
| | | | \—streams
| | | | export
| | | | out
| | | |
| | | +—copyResources
| | | | \—_global
| | | | \—streams
| | | | out
| | | |
| | | +—dependencyClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—exportedProducts
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—externalDependencyClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—incOptions
| | | | \—_global
| | | | \—streams
| | | | out
| | | |
| | | +—internalDependencyClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | | out
| | | |
| | | +—managedClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—scalacOptions
| | | | \—_global
| | | | \—streams
| | | | out
| | | |
| | | +—unmanagedClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | | out
| | | |
| | | +—unmanagedJars
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | \—_global
| | | \—_global
| | | +—compileOutputs
| | | | previous
| | | |
| | | \—discoveredMainClasses
| | | data
| | |
| | +—runtime
| | | +—dependencyClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—exportedProducts
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—externalDependencyClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—fullClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—internalDependencyClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | | out
| | | |
| | | +—managedClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—unmanagedClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | | out
| | | |
| | | \—unmanagedJars
| | | \—_global
| | | \—streams
| | | export
| | |
| | \—_global
| | +—csrConfiguration
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—csrProject
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—dependencyPositions
| | | \—_global
| | | \—streams
| | | \—update_cache_2.12
| | | input_dsp
| | | output_dsp
| | |
| | +—ivyConfiguration
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—ivySbt
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—moduleSettings
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—projectDescriptors
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—scalaCompilerBridgeScope
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—update
| | | \—_global
| | | \—streams
| | | out
| | |
| | \—_global
| | +—csrLogger
| | | \—_global
| | | \—streams
| | | out
| | |
| | \—_global
| | \—streams
| | out
| |
| +—src
| | +—main
| | | +—java
| | | | Sum.java
| | | |
| | | \—scala
| | | Main.scala
| | |
| | \—test
| | \—scala
| \—target
| | .history3
| |
| +—global-logging
| +—scala-2.13
| | +—classes
| | | Main$.class
| | | Main.class
| | | Sum.class
| | |
| | \—update
| | \—update_cache_2.13
| | inputs
| | output
| |
| +—streams
| | +—compile
| | | +—externalDependencyClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—managedClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—scalacOptions
| | | | \—_global
| | | | \—streams
| | | | out
| | | |
| | | +—unmanagedClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | | out
| | | |
| | | \—unmanagedJars
| | | \—_global
| | | \—streams
| | | export
| | |
| | +—runtime
| | | +—externalDependencyClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—managedClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—unmanagedClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | | out
| | | |
| | | \—unmanagedJars
| | | \—_global
| | | \—streams
| | | export
| | |
| | +—test
| | | +—externalDependencyClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—managedClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | |
| | | +—unmanagedClasspath
| | | | \—_global
| | | | \—streams
| | | | export
| | | | out
| | | |
| | | \—unmanagedJars
| | | \—_global
| | | \—streams
| | | export
| | |
| | \—_global
| | +—csrConfiguration
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—csrProject
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—dependencyPositions
| | | \—_global
| | | \—streams
| | | \—update_cache_2.13
| | | input_dsp
| | | output_dsp
| | |
| | +—ivyConfiguration
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—ivySbt
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—moduleSettings
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—projectDescriptors
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—update
| | | \—_global
| | | \—streams
| | | out
| | |
| | +—updateClassifiers
| | | \—_global
| | | \—streams
| | | | out
| | | |
| | | \—update_cache_2.13
| | | inputs
| | | output
| | |
| | \—_global
| | +—csrLogger
| | | \—_global
| | | \—streams
| | | out
| | |
| | \—dumpStructure
| | \—_global
| | \—streams
| | out
| |
| \—task-temp-directory
+—文档
| | 数据结构与算法1.md
| | 数据结构与算法2.md
|
+—视频(上篇)
| +—1、基础数据结构
| | Java数据结构与算法课程导学.mp4
| | 基础数据结构-001-二分查找-算法描述.mp4
| | 基础数据结构-002-二分查找-算法实现.mp4
| | 基础数据结构-003-二分查找-问题1-循环条件.mp4
| | 基础数据结构-004-二分查找-问题2-中间索引.mp4
| | 基础数据结构-005-二分查找-问题3-比较符号.mp4
| | 基础数据结构-006-二分查找-改动版.mp4
| | 基础数据结构-007-如何衡量算法好坏-1.mp4
| | 基础数据结构-008-如何衡量算法好坏-2.mp4
| | 基础数据结构-009-时间复杂度-大O表示法-1.mp4
| | 基础数据结构-010-时间复杂度-大O表示法-2.mp4
| | 基础数据结构-011-如何衡量算法好坏-3.mp4
| | 基础数据结构-012-二分查找-平衡版.mp4
| | 基础数据结构-013-二分查找-Java版.mp4
| | 基础数据结构-014-二分查找-LeftRightmost.mp4
| | 基础数据结构-015-二分查找-LeftRightmost-返回值.mp4
| | 基础数据结构-016-二分查找-LeftRightmost-应用.mp4
| | 基础数据结构-017-二分查找-e01-二分查找.mp4
| | 基础数据结构-017-二分查找-e02-搜索插入位置.mp4
| | 基础数据结构-017-二分查找-e03-搜索开始结束位置.mp4
| | 基础数据结构-018-数组-概述.mp4
| | 基础数据结构-019-动态数组-介绍.mp4
| | 基础数据结构-020-动态数组-插入.mp4
| | 基础数据结构-021-动态数组-遍历.mp4
| | 基础数据结构-022-动态数组-删除.mp4
| | 基础数据结构-023-动态数组-扩容.mp4
| | 基础数据结构-024-二维数组.mp4
| | 基础数据结构-025-数组-缓存与局部性原理.mp4
| | 基础数据结构-026-链表-概述.mp4
| | 基础数据结构-027-单向链表-addFirst.mp4
| | 基础数据结构-028-单向链表-遍历.mp4
| | 基础数据结构-029-单向链表-addLast.mp4
| | 基础数据结构-030-单向链表-get.mp4
| | 基础数据结构-031-单向链表-insert.mp4
| | 基础数据结构-032-单向链表-removeFirst.mp4
| | 基础数据结构-033-单向链表-remove.mp4
| | 基础数据结构-034-单向链表-带哨兵-1.mp4
| | 基础数据结构-035-单向链表-带哨兵-2.mp4
| | 基础数据结构-036-双向链表-带哨兵-1.mp4
| | 基础数据结构-037-双向链表-带哨兵-2.mp4
| | 基础数据结构-038-双向环形链表-带哨兵-1.mp4
| | 基础数据结构-039-双向环形链表-带哨兵-2.mp4
| | 基础数据结构-040-链表-递归遍历.mp4
| | 基础数据结构-041-递归-定义.mp4
| | 基础数据结构-042-递归-阶乘.mp4
| | 基础数据结构-043-递归-反向打印字符串.mp4
| | 基础数据结构-044-递归-e03-二分查找.mp4
| | 基础数据结构-044-递归-e04-冒泡排序1.mp4
| | 基础数据结构-044-递归-e04-冒泡排序2.mp4
| | 基础数据结构-044-递归-e05-插入排序1.mp4
| | 基础数据结构-044-递归-e05-插入排序2.mp4
| | 基础数据结构-045-多路递归-斐波那契.mp4
| | 基础数据结构-046-多路递归-斐波那契-时间复杂度.mp4
| | 基础数据结构-047-多路递归-斐波那契-兔子问题.mp4
| | 基础数据结构-048-多路递归-斐波那契-青蛙跳台阶.mp4
| | 基础数据结构-049-递归-优化-记忆法.mp4
| | 基础数据结构-050-递归-爆栈问题.mp4
| | 基础数据结构-051-递归-尾调用与尾递归.mp4
| | 基础数据结构-052-递归-尾递归避免爆栈.mp4
| | 基础数据结构-053-递归-主定理求时间复杂度-1.mp4
| | 基础数据结构-054-递归-主定理求时间复杂度-2.mp4
| | 基础数据结构-055-递归-展开求时间复杂度-1.mp4
| | 基础数据结构-056-递归-展开求时间复杂度-2.mp4
| | 基础数据结构-057-多路递归-e02-汉诺塔1.mp4
| | 基础数据结构-057-多路递归-e02-汉诺塔2.mp4
| | 基础数据结构-057-多路递归-e03-杨辉三角1.mp4
| | 基础数据结构-057-多路递归-e03-杨辉三角2.mp4
| | 基础数据结构-057-多路递归-e03-杨辉三角3.mp4
| | 基础数据结构-058-链表-e01-反转单向链表1.mp4
| | 基础数据结构-058-链表-e01-反转单向链表2.mp4
| | 基础数据结构-058-链表-e01-反转单向链表3-递归.mp4
| | 基础数据结构-058-链表-e01-反转单向链表4.mp4
| | 基础数据结构-058-链表-e01-反转单向链表5.mp4
| | 基础数据结构-058-链表-e02-根据值删除节点1.mp4
| | 基础数据结构-058-链表-e02-根据值删除节点2-递归.mp4
| | 基础数据结构-058-链表-e03-删除倒数节点1-递归.mp4
| | 基础数据结构-058-链表-e03-删除倒数节点2.mp4
| | 基础数据结构-058-链表-e04-有序链表去重1.mp4
| | 基础数据结构-058-链表-e04-有序链表去重2-递归.mp4
| | 基础数据结构-058-链表-e05-有序链表去重1-递归.mp4
| | 基础数据结构-058-链表-e05-有序链表去重2.mp4
| | 基础数据结构-058-链表-e06-合并有序链表1.mp4
| | 基础数据结构-058-链表-e06-合并有序链表2.mp4
| | 基础数据结构-058-链表-e07-合并多个有序链表.mp4
| | 基础数据结构-058-链表-e08-查找链表中间节点.mp4
| | 基础数据结构-058-链表-e09-判断回文链表1.mp4
| | 基础数据结构-058-链表-e09-判断回文链表2.mp4
| | 基础数据结构-058-链表-e10-判环算法1.mp4
| | 基础数据结构-058-链表-e10-判环算法2.mp4
| | 基础数据结构-059-数组-e01-合并有序数组1.mp4
| | 基础数据结构-059-数组-e01-合并有序数组2.mp4
| | 基础数据结构-060-队列-链表实现-1.mp4
| | 基础数据结构-061-队列-链表实现-2.mp4
| | 基础数据结构-062-队列-环形数组实现-方法1-1.mp4
| | 基础数据结构-063-队列-环形数组实现-方法1-2.mp4
| | 基础数据结构-064-队列-环形数组实现-方法2.mp4
| | 基础数据结构-065-队列-环形数组实现-方法3-1.mp4
| | 基础数据结构-066-队列-环形数组实现-方法3-2.mp4
| | 基础数据结构-067-队列-环形数组实现-方法3-3.mp4
| | 基础数据结构-068-队列-环形数组实现-方法3-4.mp4
| | 基础数据结构-069-队列-e01-二叉树层序遍历1.mp4
| | 基础数据结构-069-队列-e01-二叉树层序遍历2.mp4
| | 基础数据结构-070-栈-链表实现.mp4
| | 基础数据结构-071-栈-数组实现.mp4
| | 基础数据结构-072-栈-e01-有效的括号.mp4
| | 基础数据结构-072-栈-e02-后缀表达式求值.mp4
| | 基础数据结构-072-栈-e03-中缀表达式转后缀1.mp4
| | 基础数据结构-072-栈-e03-中缀表达式转后缀2.mp4
| | 基础数据结构-072-栈-e03-中缀表达式转后缀3.mp4
| | 基础数据结构-072-栈-e04-双栈模拟队列.mp4
| | 基础数据结构-072-栈-e05-单队列模拟栈.mp4
| | 基础数据结构-073-双端队列-链表实现-1.mp4
| | 基础数据结构-074-双端队列-链表实现-2.mp4
| | 基础数据结构-075-双端队列-数组实现-1.mp4
| | 基础数据结构-076-双端队列-数组实现-2.mp4
| | 基础数据结构-077-双端队列-数组实现-3.mp4
| | 基础数据结构-078-双端队列-e01-二叉树Z字层序遍历.mp4
| | 基础数据结构-079-优先级队列-无序数组实现.mp4
| | 基础数据结构-080-优先级队列-有序数组实现.mp4
| | 基础数据结构-081-优先级队列-堆实现-1.mp4
| | 基础数据结构-082-优先级队列-堆实现-2.mp4
| | 基础数据结构-083-优先级队列-堆实现-3.mp4
| | 基础数据结构-084-优先级队列-e01-合并多个有序链表1.mp4
| | 基础数据结构-084-优先级队列-e01-合并多个有序链表2.mp4
| | 基础数据结构-085-阻塞队列-问题提出.mp4
| | 基础数据结构-086-阻塞队列-单锁实现-1.mp4
| | 基础数据结构-087-阻塞队列-单锁实现-2.mp4
| | 基础数据结构-088-阻塞队列-单锁实现-3.mp4
| | 基础数据结构-089-阻塞队列-单锁实现-4.mp4
| | 基础数据结构-090-阻塞队列-单锁实现-5.mp4
| | 基础数据结构-091-阻塞队列-双锁实现-1.mp4
| | 基础数据结构-092-阻塞队列-双锁实现-2.mp4
| | 基础数据结构-093-阻塞队列-双锁实现-3.mp4
| | 基础数据结构-094-阻塞队列-双锁实现-4.mp4
| | 基础数据结构-095-阻塞队列-双锁实现-5.mp4
| | 基础数据结构-096-堆-heapify-1.mp4
| | 基础数据结构-097-堆-heapify-2.mp4
| | 基础数据结构-098-堆-heapify-3.mp4
| | 基础数据结构-099-堆-增-删-替换.mp4
| | 基础数据结构-100-堆-e01-堆排序.mp4
| | 基础数据结构-100-堆-e02-求数组第k大元素.mp4
| | 基础数据结构-100-堆-e03-求数据流第k大元素.mp4
| | 基础数据结构-100-堆-e04-求数据流中位数1.mp4
| | 基础数据结构-100-堆-e04-求数据流中位数2.mp4
| | 基础数据结构-100-堆-e04-求数据流中位数3.mp4
| | 基础数据结构-101-二叉树-概述.mp4
| | 基础数据结构-102-二叉树-深度优先遍历.mp4
| | 基础数据结构-103-二叉树-前中后遍历-递归实现.mp4
| | 基础数据结构-104-二叉树-前中后遍历-非递归1.mp4
| | 基础数据结构-105-二叉树-前中后遍历-非递归2.mp4
| | 基础数据结构-106-二叉树-前中后遍历-非递归3.mp4
| | 基础数据结构-107-二叉树-前中后遍历-非递归4.mp4
| | 基础数据结构-108-二叉树-e04-对称二叉树.mp4
| | 基础数据结构-109-二叉树-e05-最大深度-解法1.mp4
| | 基础数据结构-110-二叉树-e05-最大深度-解法2.mp4
| | 基础数据结构-111-二叉树-e05-最大深度-解法3.mp4
| | 基础数据结构-112-二叉树-e06-最小深度.mp4
| | 基础数据结构-113-二叉树-e07-翻转二叉树.mp4
| | 基础数据结构-114-二叉树-e08-根据后缀表达式建树.mp4
| | 基础数据结构-115-二叉树-e09-根据前中遍历结果建树.mp4
| | 基础数据结构-116-二叉树-e10-根据中后遍历结果建树.mp4
| |
| \—2、基础算法
| 基础算法-117-二叉搜索树-概述.mp4
| 基础算法-118-二叉搜索树-get.mp4
| 基础算法-119-二叉搜索树-泛型key.mp4
| 基础算法-120-二叉搜索树-min-max.mp4
| 基础算法-121-二叉搜索树-put.mp4
| 基础算法-122-二叉搜索树-前任后任-1.mp4
| 基础算法-123-二叉搜索树-前任后任-2.mp4
| 基础算法-124-二叉搜索树-删除-1.mp4
| 基础算法-125-二叉搜索树-删除-2.mp4
| 基础算法-126-二叉搜索树-删除-3.mp4
| 基础算法-127-二叉搜索树-删除-递归-1.mp4
| 基础算法-128-二叉搜索树-删除-递归-2.mp4
| 基础算法-129-二叉搜索树-范围查询.mp4
| 基础算法-130-二叉搜索树-e01~e03-删增查.mp4
| 基础算法-131-二叉搜索树-e04-判断合法-中序非递归.mp4
| 基础算法-132-二叉搜索树-e04-判断合法-中序递归1.mp4
| 基础算法-133-二叉搜索树-e04-判断合法-中序递归2.mp4
| 基础算法-134-二叉搜索树-e04-判断合法-上下界.mp4
| 基础算法-135-二叉搜索树-e05-求范围和.mp4
| 基础算法-136-二叉搜索树-e06-根据前序遍历结果建树1.mp4
| 基础算法-137-二叉搜索树-e06-根据前序遍历结果建树2.mp4
| 基础算法-138-二叉搜索树-e06-根据前序遍历结果建树3.mp4
| 基础算法-139-二叉搜索树-e07-最近公共祖先.mp4
| 基础算法-140-avl树-概述.mp4
| 基础算法-141-avl树-高度和平衡因子.mp4
| 基础算法-142-avl树-四种失衡情况.mp4
| 基础算法-143-avl树-旋转.mp4
| 基础算法-144-avl树-balance.mp4
| 基础算法-145-avl树-put.mp4
| 基础算法-146-avl树-remove.mp4
| 基础算法-147-红黑树-概述.MP4
| 基础算法-148-红黑树-put-case1~3.mp4
| 基础算法-149-红黑树-put-case4.mp4
| 基础算法-150-红黑树-remove-case0-1.mp4
| 基础算法-151-红黑树-remove-case2.mp4
| 基础算法-152-红黑树-remove-case3.mp4
| 基础算法-153-红黑树-remove-case4.mp4
| 基础算法-154-红黑树-remove-case5.mp4
| 基础算法-155-红黑树-remove-演示.mp4
|
+—视频(下篇)
| | Java数据结构与算法导学课程(下篇).mp4
| |
| \—1、基础算法
| 基础算法-156-B树-历史.mp4
| 基础算法-157-B树-特性.mp4
| 基础算法-158-B树-节点类1.mp4
| 基础算法-159-B树-节点类2.mp4
| 基础算法-160-B树-contains.mp4
| 基础算法-161-B树-put.mp4
| 基础算法-162-B树-split-分析.mp4
| 基础算法-163-B树-split-实现.mp4
| 基础算法-164-B树-split-非叶子和根.mp4
| 基础算法-165-B树-split-测试.mp4
| 基础算法-166-B树-put结合split.mp4
| 基础算法-167-B树-remove-概述.mp4
| 基础算法-168-B树-remove-搭架子.mp4
| 基础算法-169-B树-remove-case1~4.mp4
| 基础算法-170-B树-remove-case5~6分析.mp4
| 基础算法-171-B树-remove-case5-旋转.mp4
| 基础算法-172-B树-remove-case5-合并.mp4
| 基础算法-173-B树-remove-case6.mp4
| 基础算法-174-B树-remove-演示1.mp4
| 基础算法-175-B树-remove-演示2.mp4
|
\—资料
\—资料
| binary_operation.html
| cache_line1.html
| cache_line2.html
| ds_doubly_linked_list(sentinal).html
| ds_dynamic_array.html
| ds_singly_linked_list(sentinal).html
| ds_singly_linked_list.html
| heap_max.html
| heap_min.html
| index.html
| leetcode_1008.html
| leetcode_101.html
| leetcode_226.html
| leetcode_295.html
| leetcode_98.html
| priority_queue_1.html
| priority_queue_2.html
| priority_queue_3.html
| recursion_fibonacci.html
| recursion_merge.html
| search_binary1.html
| search_binary1_error.html
| search_binary2.html
| search_binary2_error.html
| search_binary3.html
| search_binary_left1.html
| search_binary_left2.html
| search_binary_right1.html
| search_binary_right2.html
| search_binary_right3.html
| sort_bubble1.html
| sort_bubble2.html
| sort_bubble3.html
| sort_insertion1.html
| sort_insertion2.html
| tree_2_3.html
| tree_avl.html
| tree_binary.html
| tree_binary2.html
| tree_binary_search.html
| tree_n.html
| tree_redblack.html
|
+—css
| prism.css
|
+—floyd-s-hare-and-tortoise
| \—dist
| index.html
| script.js
| style.css
|
+—img
| 10.png
|
\—js
drag.js
p5-svg.js
p5.js
prism.js
util.js
下载地址:
感谢您的来访,获取更多精彩文章请收藏本站。


















