您现在的位置:首页 --> 查看专题: 无向图
今天在扩展我们游戏中的管道系统时,又遇到了实现一个无向图的问题。
之前的管道系统,每节管道的邻接管数量有限,所以我用了类似树的方式储存,在每节管道上直接放了一个固定大小的数组,保存该节管道的上下游节点。对于液体管道系统,这套数据结构工作的很好。
今天,我们的另一个系统需要一个有点不一样的管道。它没有方向,每个节点可以有很多的邻接点。例如电线拉成的网络、导热管构成的网络,都是这样的。这是典型的无向图结构。
我重新考虑了数据结构,用邻接表实现了一版。
我把节点的数据和节点的邻接关系分开到不同的数据结构中,这样方便单独把管道连接模块独立出来复用。
首先,用一个有序的数字 id 表示图中的节点。由于我们的图规模不会太大,16bit 的 id 就够用了。那么,相邻节点的连接关系就是图中的边,它可以用两个 id 连起来共 32bit 表示。由于是无向图,我们
[ 共1篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[1281] WordPress插件开发 -- 在插件使用 -
[124] IOS安全–浅谈关于IOS加固的几种方法 -
[30] 关于IO的同步,异步,阻塞,非阻塞 -
[29] IP团伙行为分析(更新中文版报告) -
[27] iTerm2 (Mac Terminal) -
[27] 页面停留时间和网站停留时间详解 -
[26] Rax 系列教程(长列表) -
[25] 解决Ubuntu播放器快进问题 -
[24] 过年回家有感:他们的互联网 -
[24] 微博架构与平台安全演讲稿
赞助商广告