[quote=引用 43 楼 zhao4zhong1 的回复:]
我本家的模型和楼主说的意思还是差一点。 楼主说的是每个节点都有3个邻居。 我本家的模型里,显然有相当一部分不满足条件,只有两个甚至只有一个邻居。 正确的模型,应该想一想足球皮。 也就是说,把这个模型想像成覆盖在一个球体表面的闭合网状。那样才能满足条件。 但是又如何满足用二维数组的形式存储呢? 想想地球的经纬度。经纬度可以定义地球表面网状结构任意一点的坐标。 地球上每一点都有无数个邻居,而楼主的这个模型要简单得多了,每一点只有三个邻居,所以,可以建立一个角度固定的经纬度坐标体系。根据这个体系的公式,不仅可以确定坐标的具体值,也可以根据任意一个坐标的值,通过向量坐标计算的方法,向左上方和右上方固定角度以下向下取相同长度,即可计算得出此点的三个邻居的坐标。 把经纬度坐标联合起来作为ID就可以了,可以节省两个数据库字段,所得ID又可确保是唯一的。
老赵的方法是可以的,没必要非要把节点ID用一维数组表示,也可以用二维数组嘛。 至于求邻居节点,那也很容易: 就用老赵那个表示方法,假设对应位置有节点则该元素是1,没节点则是0,比如[0, 0]那个位置。 对给定的节点坐标ID[x, y],先检测坐标有效性,诸如是否超出坐标范围,该位置有没有节点等, 如果x+y=偶数,则它的邻居是[x, y-1], [x-1, y], [x+1, y] 如果x+y=奇数,则它的邻居是[x, y+1], [x-1, y], [x+1, y] 检测邻居的有效性
[quote=引用 35 楼 ljheee 的回复:] [quote=引用 33 楼 zhao4zhong1 的回复:] [quote=引用 32 楼 dingchenxixi 的回复:] [quote=引用 28 楼 zhao4zhong1 的回复:]
[quote=引用 33 楼 zhao4zhong1 的回复:] [quote=引用 32 楼 dingchenxixi 的回复:] [quote=引用 28 楼 zhao4zhong1 的回复:]
[quote=引用 32 楼 dingchenxixi 的回复:] [quote=引用 28 楼 zhao4zhong1 的回复:]
请问积分怎么搞得
[quote=引用 28 楼 zhao4zhong1 的回复:]
假设是几何图形的话 第一行A点处 (x-1/2, y-sqrt(3)/2),(x-1/2,y+sqrt(3)/2),(x+1,y) B 点处 (x-1,y), (x+1/2,y-sqrt(3)/2),(x+1/2,y+sqrt(3)/2) C 点处 (x-1/2, y-sqrt(3)/2),(x-1/2,y+sqrt(3)/2),(x+1,y) D 点处 (x-1,y), (x+1/2,y-sqrt(3)/2),(x+1/2,y+sqrt(3)/2) E点处 (x-1/2, y-sqrt(3)/2),(x-1/2,y+sqrt(3)/2),(x+1,y) F点处 (x-1,y), (x+1/2,y-sqrt(3)/2),(x+1/2,y+sqrt(3)/2)
3,881
社区成员
9,054
社区内容
加载中
试试用AI创作助手写篇文章吧