基于Java的数据结构和算法
数据结构
- 动态数组、稀疏数组
- 链表
- 队列
- 栈
- 二叉树、平衡二叉树、红黑树、并查集、Trie、线段树、最大堆
- 哈希表、集合
算法
- 排序
- 字符串
- KMP算法
- 常用方法
- 最长回文串
- 翻转区间
- 删除空格
- 无向图
- 深度优先遍历
- 求连通分量
- 单源路径
- 检测环
- 二分图检测
- 广度优先遍历
- 求连通分量
- 单源路径
- 检测环
- 二分图检测
- 最短路径
- 哈密尔顿回路
- 哈密尔顿路径
- 深度优先遍历
- 带权无向图
.
|-- DataStructureAndAlgorithm.iml
|-- README.md
`-- src
|-- Algorithms
| |-- BinarySearch
| | `-- BinarySearch.java
| |-- BinaryTree
| | `-- DFS.java
| |-- KMP
| | `-- KMPAlgorithm.java
| |-- NewGraph
| | |-- DirectedGraph
| | `-- UndirGraph
| | |-- CC.java
| | `-- DFS.java
| |-- Recursion
| | `-- nQueens.java
| |-- Sort
| | |-- BubbleSort.java
| | |-- HeapSort.java
| | |-- MergeSort.java
| | |-- QuickSort.java
| | |-- RadixSort.java
| | |-- SelectSort.java
| | |-- ShellSort.java
| | `-- insertSort.java
| `-- Stack
| |-- PolandNotation.java
| `-- toSufixExpression.java
|-- DataStructure
| |-- Array
| | |-- Array.java
| | |-- ArrayDemo.java
| | |-- SparseArray.java
| | `-- testMyArray.java
| |-- BinaryTree
| | |-- AVLNode.java
| | |-- BSTNode.java
| | |-- BalancedBinaryTree.java
| | |-- BinarySearchTree.java
| | |-- BreadthFirstSearch.java
| | |-- DepthFirstSearch.java
| | |-- RedBlackNode.java
| | `-- RedBlackTree.java
| |-- HashTable
| | |-- HashCode.java
| | |-- HashTable.java
| | `-- Student.java
| |-- Heap
| | `-- MaxHeap.java
| |-- LinkedList
| | |-- DoubleNode.java
| | |-- LinkedList.java
| | |-- LinkedListDemo.java
| | |-- Node.java
| | |-- ReversingLinkedList.java
| | |-- SingleLinkedList.java
| | `-- TwoWayLinkedList.java
| |-- NewBinaryTree
| | |-- AVL
| | | `-- AVLTree.java
| | |-- BST.java
| | |-- Map
| | | |-- AVLMap.java
| | | |-- BSTMap.java
| | | |-- LinkedListMap.java
| | | `-- Map.java
| | |-- RedBlackTree
| | | `-- RBTree.java
| | `-- Set
| | |-- AVLSet.java
| | |-- BSTSet.java
| | |-- LinkedListSet.java
| | `-- Set.java
| |-- NewGraph
| | |-- DirectedGraph
| | |-- UndirGraph
| | | |-- AdjList.java
| | | |-- AdjMatrix.java
| | | |-- AdjSet.java
| | | `-- Graph.java
| | `-- g.txt
| |-- Queue
| | |-- ArrayLoopQueue.java
| | |-- ArrayQueue.java
| | |-- Compare.java
| | |-- LinkedListQueue.java
| | |-- PriorityQueue.java
| | |-- QueueDemo.java
| | `-- iQueue.java
| |-- Recursion
| | `-- Sum.java
| |-- SegmentTree
| | |-- Merger.java
| | `-- SegmentTree.java
| |-- Stack
| | |-- ArrayStack.java
| | |-- Compare.java
| | |-- LinkedListStack.java
| | |-- StackByLinkedList.java
| | |-- StackDemo.java
| | |-- iStack.java
| | `-- testStack.java
| |-- Trie
| | `-- Trie.java
| |-- UnionFind
| | |-- Compare.java
| | |-- UF.java
| | |-- UnionFind1.java
| | |-- UnionFind2.java
| | |-- UnionFind3.java
| | |-- UnionFind4.java
| | |-- UnionFind5.java
| | `-- UnionFind6.java
| `-- Vector
| `-- VectorDemo.java
|-- LeetCode
| |-- DynamicProgramming.md
| |-- LeetCode673.java
| |-- LeetCode9.java
| `-- LeetCode990.java
`-- TestUML.puml
```