一种在伪代码中访问集合元素的简明方法

时间:2015-06-06 18:58:25

标签: algorithm networking distributed-computing pseudocode

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保留为一组,因此不适合使用地图或数组的解决方案。

1 个答案:

答案 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

您提供的循环作为示例既不正确也不伪代码。它是地图的具体实现,并没有说明找不到密钥时该怎么做。