亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript 使用遞歸創建二叉樹

javascript 使用遞歸創建二叉樹

Walk_ 2016-12-05 20:50:20
初學二叉樹,參考了網上使用遞歸創建二叉樹的方法,發現只能創建數字型二叉樹,所以我想實現一個創建方法:可以接受字符串,然后按照添加順序,從左到右創建節點。比如說,傳入7個值,我希望它的結構是這樣的:????????????????????value1????????value2 ? ? ? ? ? ?value3value4 ? ?value6 ? ?value5? ? value7我想了半天也沒有想出,希望大家指點一下。附帶一份代碼供大家參考:function?BinarySearchTree()?{ ????var?Node?=?function(key)?{ ????this.key?=?key; ????this.left?=?null;?//左鍵(元素) ????this.right?=?null;?//右鍵(元素) } var?root?=?null;?//根元素 ????//向樹中插入一個新鍵 ????this.insert?=?function(key)?{ ????if(root?===?null)?{?//判斷根元素是否存在 ????????root?=?newNode; ????}?else?{ ????????insertNode(root,?newNode); ????} } /*?node??根節點 ?*?newNode?新節點? ?*/ var?insertNode?=?function(node,?newNode)?{ //判斷新元素的key值是小于父元素的key if(newNode.key?<?node.key)?{//新元素的key值小于父元素的key,新節點將被插入在父元素左側。 ????if(node.left?===?null)?{?//如果沒有左側子節點,就在這插入新節點 ?????????node.left?=?newNode; ????}?else?{?//左側已經存在新節點啦,遞歸自己到樹的下一層 ?????????insertNode(node.left,?newNode); ????} }?else?{ ????if(node.right?===?null)?{ ????????node.right?=?newNode; ????}?else?{ ????????insertNode(node.right,?newNode); ????} ????} ????} } var?tree?=?new?BinarySearchTree();
查看完整描述

目前暫無任何回答

  • 0 回答
  • 1 關注
  • 2445 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號