前序=>中 左 右
中序=>左 中 右
后序=>左 右 中
记忆方法:都是先左后右,其次前中后代表"中"字的位置
中序=>左 中 右
后序=>左 右 中
记忆方法:都是先左后右,其次前中后代表"中"字的位置
2018-09-27
想了很久才大概理解了这几行代码,我的理解是这样的:
栈是先进后出的,所以在节点1的时候,它没有左子节点,这个时候开始出栈,继续执行上一次的inOrderTraverceNode里未执行完的代码,当节点1也没有右子节点的时候,到节点3出栈,开始继续执行上一次的inOrderTraverceNode里未执行完的代码,以此类推。
栈是先进后出的,所以在节点1的时候,它没有左子节点,这个时候开始出栈,继续执行上一次的inOrderTraverceNode里未执行完的代码,当节点1也没有右子节点的时候,到节点3出栈,开始继续执行上一次的inOrderTraverceNode里未执行完的代码,以此类推。
2018-08-11
node.left=newNode;
node.left变成了Node{key,left,right}
我写成了
node.left=newNode.key;
之后传参数判断的时候就报错了
inserNode(node.left,newNode);
if(node.key>newNode.key)
node.left是一个值,没有key,left,right
就报错啦
node.left变成了Node{key,left,right}
我写成了
node.left=newNode.key;
之后传参数判断的时候就报错了
inserNode(node.left,newNode);
if(node.key>newNode.key)
node.left是一个值,没有key,left,right
就报错啦
2018-07-27
17 行 var root=null;下加一句
this.cont=root;
38行 root=newNode;下页加一句
this.cont=root;
========
最后console.log(binarytree);
在对象cont内可以直观的查看节点结构。
this.cont=root;
38行 root=newNode;下页加一句
this.cont=root;
========
最后console.log(binarytree);
在对象cont内可以直观的查看节点结构。
2018-07-25