/DataStructureAndAlgorithms

基于Java的数据结构和算法

Primary LanguageJava

DataStructureAndAlgorithms

Context

基于Java的数据结构和算法

数据结构

  • 动态数组、稀疏数组
  • 链表
  • 队列
  • 二叉树、平衡二叉树、红黑树、并查集、Trie、线段树、最大堆
  • 哈希表、集合

算法

  • 排序
  • 字符串
    • KMP算法
    • 常用方法
      • 最长回文串
      • 翻转区间
      • 删除空格
  • 无向图
    • 深度优先遍历
      • 求连通分量
      • 单源路径
      • 检测环
      • 二分图检测
    • 广度优先遍历
      • 求连通分量
      • 单源路径
      • 检测环
      • 二分图检测
      • 最短路径
    • 哈密尔顿回路
    • 哈密尔顿路径
  • 带权无向图

Table of Contents

.
|-- 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

```