# datastructure **Repository Path**: what_is_that/datastructure ## Basic Information - **Project Name**: datastructure - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-02-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # datastructure 用Java实现的数据结构暨算法,同时对其进行了测试 准备工作 ------ 1 为你的系统安装Maven 2 Setup环境 请在终端命令行上运行 “mvn clean install -DskipTests”, 然后再运行 “mvn eclipse:eclipse”,将项目Import到你的Eclipse中 目录 ------ 1. 字符串 [字符串压缩](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/array/CompressStr.java) [矩阵](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/array/SetZeroMatrix.java) [String的秘密](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/string/StringEqual.java) 2. 链表 [删除重复元素](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/linkedlist/DeleteDups.java) [链表排序](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/linkedlist/SortWithValue.java) [链表环儿](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/linkedlist/LinkedListLoop.java) [链表环儿测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/linkedlist/LinkedListLoopTest.java) 3. 查找 [二分查找](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/search/BinarySearch.java) [二分查找测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/search/BinarySearchTest.java) 4. 排序 [冒泡排序](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/sort/BubbleSort.java) [归并排序](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/sort/MergeSort.java) [快速排序](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/sort/QuickSort.java) [选择排序](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/sort/SelectionSort.java) [插入排序](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/sort/InsertSort.java) [插入优化排序](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/sort/InsertOptimizeSort.java) [排序全测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/sort/SortTest.java) 5. 栈 [栈的实现](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/stack/Stack.java) [记录存储容量和索引的栈](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/stack/StackCapacity.java) [能获取最小值的栈](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/stack/StackWithMin.java) [汉诺塔](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/stack/Hannotower.java) [栈全测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/stack/StackTest.java) 6. 队列 [队列实现](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/queue/Queue.java) [两栈实现队列](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/queue/QueueWith2Stack.java) [队列全测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/queue/QueueTest.java) 7. 树 [树的前序,中序,后续遍历搜索](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/tree/TreeSearch.java) [遍历搜索测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/tree/TreeSearchTest.java) [二叉树判断](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/tree/BinarySearchTree.java) [二叉树判断测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/tree/BinarySearchTreeTest.java) [平衡树判断](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/tree/CheckBalanceTree.java) [平衡树判断测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/tree/CheckBalanceTreeTest.java) [查找两节点共同祖先](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/tree/CommonAncestorSearch.java) [共同祖先测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/tree/CommonAncestorSearchTest.java) [数组变二叉查找树](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/tree/MinBinaryTree.java) 8. 图 [图的广度优先和深度优先搜索](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/graph/GraphSearch.java) [广度优先和深度优先搜索测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/graph/GraphSearchTest.java) [有向图路径判断](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/graph/DirectedGraphPathCheck.java) [有向图路径判断测试](https://github.com/buptdavid/datastructure/blob/master/src/test/java/org/buptdavid/datastructure/graph/DirectedGraphPathCheckTest.java) 9. 多线程 [线程实现之继承Thread](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/ExtendThread.java) [线程实现之实现Runnable](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/RunableThread.java) [实现锁的ATM取款与存款](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/LockedATM.java) [哲学家就餐问题之会死锁的哲学家](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/PhilosopherLocked.java) [死锁哲学家测试](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/PhilosopherLockedEat.java) [哲学家就餐问题之不会死锁的哲学家](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/PhilosopherUnLocked.java) [不死锁哲学家测试](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/PhilosopherUnLockedEat.java) [同步对象](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/SynchronizedObject.java) [同步线程](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/SynchronizedThread.java) [Lock Condition转账](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/lockcondition/SynchBankTest.java) [synchronized wait转账](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/usesynchronized/SynchBankTest2.java) [线程池](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/thread/threadpool/ThreadPoolTest.java) 10. IO [BIO服务端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/bio/TimeServer.java) [BIO客户端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/bio/TimeClient.java) [伪NIO服务端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/fakenio/TimeServer.java) [NIO服务端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/nio/TimeServer.java) [NIO客户端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/nio/TimeClient.java) [AIO服务端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/aio/TimeServer.java) [AIO客户端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/aio/TimeClient.java) 11. Netty [Netty粘包拆包服务端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/netty/tcpacketsplicing/TimeServer.java) [Netty粘包拆包客户端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/netty/tcpacketsplicing/TimeClient.java) [Netty序列化服务端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/netty/serializable/SubReqServer.java) [Netty序列化客户端](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/io/netty/serializable/SubReqClient.java) 12. 设计模式 [五种单例模式](https://github.com/buptdavid/datastructure/blob/master/src/main/java/org/buptdavid/datastructure/designPatterns/singleton/Singleton.java)