# 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://gi
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和图的邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法: 算法设计:研究如何将解决问题的步骤形式化为一系列指令,使得计算机可以执行以求解问题。 算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生唯一的确定输出。 算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界法等。 算法分析:通过数学方法分析算法的时间复杂度(运行时间随数据规模增长的速度)和空间复杂度(所需内存大小)来评估其效率。 学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
资源推荐
资源详情
资源评论
收起资源包目录
用Java实现的数据结构暨算法,同时对其进行了测试.zip (99个子文件)
open_suanfayushujujiegouxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcxxxxxxxxxxxxcxvcvcv
pom.xml 884B
.gitattributes 483B
src
test
java
org
buptdavid
datastructure
sort
SortTest.java 1KB
tree
TreeSearchTest.java 3KB
CheckBalanceTreeTest.java 2KB
CommonAncestorSearchTest.java 2KB
BinarySearchTreeTest.java 2KB
linkedlist
LinkedListLoopTest.java 2KB
stack
StackTest.java 2KB
queue
QueueTest.java 960B
search
BinarySearchTest.java 1016B
graph
GraphSearchTest.java 2KB
DirectedGraphPathCheckTest.java 2KB
main
java
org
buptdavid
datastructure
thread
threadpool
ThreadPoolTest.java 3KB
RunableThread.java 858B
SynchronizedObject.java 1KB
LockedATM.java 2KB
ChopStickLocked.java 907B
LockedATMThread.java 352B
PhilosopherUnLocked.java 944B
ChopStickUnLocked.java 236B
PhilosopherUnLockedEat.java 2KB
ExtendThreadRun.java 392B
usesynchronized
SynchBankTest2.java 691B
TransferRunnable.java 1KB
Bank.java 2KB
ExtendThread.java 471B
lockcondition
SynchBankTest.java 631B
TransferRunnable.java 1KB
Bank.java 2KB
PhilosopherLocked.java 2KB
SynchronizedThread.java 403B
PhilosopherLockedEat.java 2KB
sort
InsertSort.java 425B
SelectionSort.java 536B
InsertOptimizeSort.java 986B
QuickSort.java 1KB
ISort.java 221B
BubbleSort.java 523B
MergeSort.java 2KB
Node.java 213B
tree
BinarySearchTree.java 1023B
MinBinaryTree.java 746B
CommonAncestorSearch.java 1KB
CheckBalanceTree.java 2KB
TreeSearch.java 2KB
TreeNode.java 678B
linkedlist
SortWithValue.java 3KB
LinkedListLoop.java 2KB
DeleteDups.java 1KB
array
CompressStr.java 1KB
SetZeroMatrix.java 1KB
stack
SetOfStacks.java 2KB
StackWithMin.java 862B
IStack.java 462B
Stack.java 715B
StackCapacity.java 597B
Hannotower.java 2KB
string
StringEqual.java 633B
queue
Queue.java 789B
IQueue.java 391B
QueueWith2Stack.java 944B
search
BinarySearch.java 1KB
io
aio
TimeServer.java 620B
ReadCompletionHandler.java 2KB
AsyncTimeServerHandler.java 2KB
AcceptCompletionHandler.java 2KB
AsyncTimeClientHandler.java 4KB
TimeClient.java 646B
fakenio
TimeServer.java 2KB
TimeServerHandlerExecutePool.java 698B
bio
TimeServer.java 940B
TimeClientHandler.java 1KB
TimeClient.java 475B
TimeServerHandler.java 2KB
netty
serializable
SubReqServerHandler.java 1KB
SubscribeResp.java 1KB
SubReqClientHandler.java 1KB
SubscribeReq.java 2KB
SubReqServer.java 4KB
SubReqClient.java 2KB
tcpacketsplicing
TimeServer.java 4KB
TimeClientHandler.java 2KB
TimeClient.java 2KB
TimeServerHandler.java 1KB
nio
TimeServer.java 606B
TimeClientHandle.java 5KB
MultiplexerTimeServer.java 6KB
TimeClient.java 614B
graph
GraphSearch.java 1KB
GraphNode.java 864B
DirectedGraphPathCheck.java 2KB
designPatterns
singleton
threadSafety
Singleton.java 426B
threadSafetyVolatile
Singleton.java 560B
statics
Singleton.java 495B
staticInnerClass
Singleton.java 494B
classic
Singleton.java 409B
Singleton.java 2KB
README.md 9KB
共 99 条
- 1
资源评论
极致人生-010
- 粉丝: 3257
- 资源: 3077
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功