前序=>中 左 右
中序=>左 中 右
后序=>左 右 中
記憶方法:都是先左后右,其次前中后代表"中"字的位置
中序=>左 中 右
后序=>左 右 中
記憶方法:都是先左后右,其次前中后代表"中"字的位置
2018-09-27
想了很久才大概理解了這幾行代碼,我的理解是這樣的:
棧是先進后出的,所以在節(jié)點1的時候,它沒有左子節(jié)點,這個時候開始出棧,繼續(xù)執(zhí)行上一次的inOrderTraverceNode里未執(zhí)行完的代碼,當(dāng)節(jié)點1也沒有右子節(jié)點的時候,到節(jié)點3出棧,開始繼續(xù)執(zhí)行上一次的inOrderTraverceNode里未執(zhí)行完的代碼,以此類推。
棧是先進后出的,所以在節(jié)點1的時候,它沒有左子節(jié)點,這個時候開始出棧,繼續(xù)執(zhí)行上一次的inOrderTraverceNode里未執(zhí)行完的代碼,當(dāng)節(jié)點1也沒有右子節(jié)點的時候,到節(jié)點3出棧,開始繼續(xù)執(zhí)行上一次的inOrderTraverceNode里未執(zhí)行完的代碼,以此類推。
2018-08-11
node.left=newNode;
node.left變成了Node{key,left,right}
我寫成了
node.left=newNode.key;
之后傳參數(shù)判斷的時候就報錯了
inserNode(node.left,newNode);
if(node.key>newNode.key)
node.left是一個值,沒有key,left,right
就報錯啦
node.left變成了Node{key,left,right}
我寫成了
node.left=newNode.key;
之后傳參數(shù)判斷的時候就報錯了
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內(nèi)可以直觀的查看節(jié)點結(jié)構(gòu)。
this.cont=root;
38行 root=newNode;下頁加一句
this.cont=root;
========
最后console.log(binarytree);
在對象cont內(nèi)可以直觀的查看節(jié)點結(jié)構(gòu)。
2018-07-25