让 networklocs 成为(n,t,l)形式的一组元素,其中 n 是网络中的节点, t 是时钟节拍,l是 n 在 t 时的位置。我怎样才能(以简洁的方式在伪代码中)得到nodelocs的元素,其中给出了节点和时间?
我知道我可以写一个像
这样的函数 getElement(ni,t)
for all (nj,t',l') in networklocs
if nj=ni and t'= t then return (nj,t',l')
但有没有更简洁的方法来访问伪代码中 networklocs 集合的元素?
请注意,我想将networklocs保留为一组,因此不适合使用地图或数组的解决方案。
答案 0 :(得分:0)
请注意,返回ni和t是没用的,因为他们已经知道了。在乐谱和练习中,您需要
Let M be a map: <N, T> -> L
您想要的操作只是地图查找:
l <- M <n, t>
虽然地图是最可能的符号,但也可以使用谓词逻辑表达式:
Let get(n,t) be x = <n, t, l> | x \in networklocs
您提供的循环作为示例既不正确也不伪代码。它是地图的具体实现,并没有说明找不到密钥时该怎么做。