Estruturas de dados duplamente ligadas em erlang
Oi eu quero fazer uma árvore que mantém referências de mão dupla entre pai e filhos. Mas parece impossível achá-lo, pois quando eu crio o primeiro objeto eu não tenho o outro, portanto, não posso ter uma referência a ele. Aqui está um código de exemplo.
-record(node,{name,children,root}).
main()->
A = #node{name="node-A",
children=[B], %variable B is unbound
root=nil},
B = #node{name="node-B",
children=[],
root=A},
Tree = A.
Outro exemplo para esse problema seria implementar uma lista duplamente vinculada (http://en.wikipedia.org/wiki/Doubly_linked_list)
-record(node,{prev,name,next}).
main()->
A = #node{prev=nil,
name="node-A",
next=B}, % variable B is unbound
B = #node{prev=A,
name="node-B",
next=nil},
LinkedList = A.
Existe uma maneira de implementar esse tipo de estrutura?