问答详情
源自:2-4 游戏实例的代码调试(1)

数组怎么绑的selected属性?Node里面多了一个selected属性?

外星人横坐标的数据源怎么做的?

提问者:Qzhor 2017-10-06 13:08

个回答

  • ideal_idiot
    2017-11-10 16:49:48

    1. BinaryTree()构造函数里面确实给node增加了一个属性:node.selected;

      并且应该注意到:对于search()方法,在找到之后返回的是找到的节点,即return node;

    2. 存储外星人横坐标的数组为var nodesForAlien[]。其中每一个元素的构造(以第i个为例)为:
      nodesForAlien[i] = { key: val, selected: false};

    3. 其中key的值,可以随机产生:key = Math.floor(Math.random() *280);

    4. 数据源导入到二叉树的做法

    • 生成完整的nodesForAlien[]数组,你可以数组长度随意设置。结构就如上面说的那样。

    • 生成构造函数的实例var binaryTree = new BinaryTree();注意这里的正如上面提到过的,这里的构造函数给node增加了新的属性。

    • 接下来就可以进行插入、查询等操作了。这些之前的课里面有讲过。

       5. 注意到代码里面的return search()操作,返回的是一个二叉树节点,相比原先构造的数组元素显然多了两个left和right属性,不过JS是弱类型的,所以没什么影响。