您现在的位置:首页 --> 查看专题: 无向图
今天在扩展我们游戏中的管道系统时,又遇到了实现一个无向图的问题。
之前的管道系统,每节管道的邻接管数量有限,所以我用了类似树的方式储存,在每节管道上直接放了一个固定大小的数组,保存该节管道的上下游节点。对于液体管道系统,这套数据结构工作的很好。
今天,我们的另一个系统需要一个有点不一样的管道。它没有方向,每个节点可以有很多的邻接点。例如电线拉成的网络、导热管构成的网络,都是这样的。这是典型的无向图结构。
我重新考虑了数据结构,用邻接表实现了一版。
我把节点的数据和节点的邻接关系分开到不同的数据结构中,这样方便单独把管道连接模块独立出来复用。
首先,用一个有序的数字 id 表示图中的节点。由于我们的图规模不会太大,16bit 的 id 就够用了。那么,相邻节点的连接关系就是图中的边,它可以用两个 id 连起来共 32bit 表示。由于是无向图,我们
[ 共1篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[83] memory prefetch浅析
-
[55] 转载:cassandra读写性能原理分析
-
[52] 深入浅出cassandra 4 数据一致性问
-
[50] 基本排序算法的PHP实现
-
[45] 字符引用和空白字符
-
[41] MySQL半同步存在的问题
-
[41] 获取Dom元素的X/Y坐标
-
[41] Inline Form Labels
-
[41] JS中如何判断字符串类型的数字
-
[40] javascript插入样式
赞助商广告