我正在开发我的第一个智能合约,因此我在Remix IDE上遇到了问题。这标志着我的功能成本太高,我不明白问题可能在哪里。也许有人比我有更多的经验可以帮助我。
这是我的代码,应该可以建立邻接表。我使用地图来跟踪它,其中每个键代表图形上的每个节点,以及与它对应的所有节点(使用动态数组)对应的值。首先,在我的函数中,我检查A和B之间的连接是否已经存在,如果不是,则将其添加到A => B和B => A中。
pragma solidity ^0.4.21;
contract AdjacencyList {
mapping (address => address[]) public neighbours;
function comunication(address source, address destination) public {
address[] storage d = neighbours[source];
bool found = false;
for (uint i = 0; i < d.length; i++) {
if (d[i] == destination) {
found = true;
break;
}
}
if(!found) {
d.push(destination);
d = neighbours[destination];
d.push(source);
}
}
}