Взаимосвязанные структуры данных в эрланге

Привет я хочу сделать дерево, которое хранит двусторонние ссылки между родителями и детьми. Но кажется невозможным достичь этого, так как когда я создаю первый объект, у меня нет другого, поэтому я не могу иметь ссылку на него. Вот пример кода.

-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.

Другим примером этой проблемы может быть реализация двусвязного списка (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.

Есть ли способ реализовать такую структуру.

Ответы на вопрос(5)

Ваш ответ на вопрос