我有一个程序允许用户在大小为1000乘750的JFrame上绘制顶点和边。现在我需要使用四叉树来根据单个象限中有多少个顶点来划分输入图。如果有人能指出我如何实现这个目标,我真的很感激吗?
其他信息: 我有一个Edge类,它存储:source(顶点),target(顶点)和weight。 我有一个Vertex类,它存储:name,x坐标,y坐标和Edge [] adjacentList。 我还有一个Graph类,它存储两个ArrayLists:edge和vertices。
答案 0 :(得分:5)
我最近实现了代码,可以解决您的问题。它可以在我最近的博客文章中免费下载。空间分解的四叉树,Java实现http://kirstywilliams.co.uk/blog/2012/08/quadtrees-java-implementation/
答案 1 :(得分:1)
更多的四叉树实现都是apache许可的:
但是如果你已经在内存中有一个连接图,你可以创建更高效的内存(但也有点复杂)。部件已实施here,有更多详细信息here。
另一个interesting repo(但AGPL我认为是neo4j本身)和一些空间集合。