我需要编写一个测试平台来测试特定的算法。该系统应该可以通过输入和 3 维来定义 - 类似于片上网络,它具有节点和链接元素来连接它们。由于节点之间的维度和链接,我在确定要使用的数据结构方面遇到了一些困难——像 array[x][y][z] 这样的 3 维数组很难作为指针处理,在添加链接时有缺点连接节点(在结构中留下几个空值孔)。二叉搜索树很难实现,因为它是网格类型。出于这个原因,我考虑过做一个链接更容易实现的链接列表。(最终的测试平台应该类似于下面的演示文稿)其中每个链接也被映射下来,因为它们包含通信时间表
01-------02-------03
| \ | \ | \
| 10----|--11----|--12
| | \ | | \ | | \
| | 19-|--|--20-|--|--21
04-------05-------06 | |
| \ | | \| | | \| |
| 13----|--14----|--15 |
| | \| | | \| | | \|
| | 22-|--|--23-|--|--24
07-------08-------09 | |
\| | \| | \| |
16-------17-------18 |
\| \| \|
25-------26-------27
你们中的任何人都可以就c ++中哪种类型的结构适合这种任务提供一些帮助。给定 x、y 和 z 的维度参数,完成的程序应该能够生成这样的结构。
目前粗略的轮廓应该是这样的
>class Node{
> public:
> Link* north;
> Link* east;
> Link* south;
> Link* west;
> Link* up;
> Link* down;
> //will contain a node specific scheduler
>}
>
>class Link{
>
> Node* A;
> Node* B;
> //will contain a link specific scheduler
>}
编辑 22.01.2013
首先,它是一个模拟三维网络片上多处理器系统的测试平台。该系统必须完成的任务是能够测试某些算法以帮助将任务映射到这些节点(每个节点都连接到一个处理器内核)。鉴于此,内存消耗可能不是问题,因为它仅用于测试,正如我所说,因此系统必须同时具有节点和链接,因为它们都不能被两个事件使用同时(链接上的通信将阻塞所有其他通信等,这就是我写类类型节点/链接将在其中包含调度程序的原因)