Javascript 如何创建具有不同父级和子级的图形结构

Javascript 如何创建具有不同父级和子级的图形结构,javascript,data-structures,graph,Javascript,Data Structures,Graph,我试图创建一个图形结构,其中每个节点在JavaScript中都有不同的父节点和子节点。因此,每个节点必须能够有多个父节点和多个子节点。我需要能够区分父母和孩子,因为我需要按层次来表示。我需要能够在javascript中实现如下所示的内容,但结构显然会比这更大。我有什么办法可以做到这一点吗 到目前为止,我已经尝试使用常规的树结构来实现这一点,我也尝试了本教程:,但我无法让它以如上所述的分层方式工作 一个简单的节点结构。每个节点都有不同的父节点和子节点。这里我叫左,右。我想你想要的是孩子们的名单。创

我试图创建一个图形结构,其中每个节点在JavaScript中都有不同的父节点和子节点。因此,每个节点必须能够有多个父节点和多个子节点。我需要能够区分父母和孩子,因为我需要按层次来表示。我需要能够在javascript中实现如下所示的内容,但结构显然会比这更大。我有什么办法可以做到这一点吗


到目前为止,我已经尝试使用常规的树结构来实现这一点,我也尝试了本教程:,但我无法让它以如上所述的分层方式工作

一个简单的节点结构。每个节点都有不同的父节点和子节点。这里我叫左,右。我想你想要的是孩子们的名单。创建一个方法,将子对象附加到子对象列表中

抱歉,如果这是结构不良;我通常喝咖啡


更新了我的问题以显示这一点。谢谢你的建议@brycedruw。你应该解释一下你挂断了什么,你不能让它工作。左和右是什么意思?在示例中,左侧和右侧是否指节点2和3?我最终需要添加更多的节点,而不是它们自己的子节点。
var left, right;

var Node = (function() {
  function Node(data, left, right) {
    if (left == null) {
      left = null;
    }
    if (right == null) {
      right = null;
    }
    this.data = data;
    this.left = left;
    this.right = right;
  }

  Node.prototype.get_data = function() {
    return this.data;
  };

  return Node;

})();

var node_4 = new Node("node_4", left=null, right=null);
var node_3 = new Node("node_3", left=node_4, right=null);
var node_2 = new Node("node_2", left=null, right=node_4);
var node_1 = new Node("node_1", left=node_2, right=node_3);

console.log(node_1.get_data())
console.log(node_1.left.get_data())
console.log(node_1.right.get_data())
console.log(node_1.left.right.get_data())
console.log(node_1.right.left.get_data())