2
我想模擬一個簡單圖形,其中每個節點都連接到另一個節點。構建帶有循環引用的不可變圖形
這似乎是給定的情況下一個節點的合理定義:
case class Node(other: Node)
但是說,我想創建一個類似如下的圖表:
--------------
| |
node_a V
^ node_b
| |
--------------
這似乎不可能創造這樣的給定Node
的定義的圖表,因爲other
是不可變的,需要在創建時分配,但不可能同時創建兩個節點。
我想我可以只存儲該另一節點的名稱:
case class Node(name: String, otherName: String)
...
val n1 = Node("a", "b")
val n2 = Node("b", "a")
val nodes = Map(n1.name -> n1, n2.name -> n2)
這需要產生每個節點的唯一標識符的附加步驟。這並不可怕,但我真的很喜歡直接使用節點本身遍歷圖的優雅,而不是nodes.get(n.other)
。
我在這裏尋找不可能的東西嗎?