課程
/計(jì)算機(jī)基礎(chǔ)
/算法與數(shù)據(jù)結(jié)構(gòu)
/Javascript實(shí)現(xiàn)二叉樹算法
你們這個(gè)代碼有沒(méi)有自己測(cè)試過(guò)?我怎么測(cè)試報(bào)錯(cuò),說(shuō)insert方法不存在
2017-09-10
源自:Javascript實(shí)現(xiàn)二叉樹算法 1-4
正在回答
this.insert這個(gè)接口應(yīng)該是屬于BinaryTree這個(gè)方法內(nèi)的,且在判斷節(jié)點(diǎn)有孩子的時(shí)候,遞歸調(diào)用時(shí),傳的是下一節(jié)點(diǎn),而不是該節(jié)點(diǎn)。
? var root = null;
? ? function BinaryTree() {
? ? ? ? var Node = function(key) {
? ? ? ? ? ? this.key = key;
? ? ? ? ? ? this.left = null;
? ? ? ? ? ? this.right = null;
? ? ? ? }
? ? }
? ? var insertNode = function(node, newNode) {
? ? ? ? if (newNode.key < node.key) {
? ? ? ? ? ? if (node.left === null) {
? ? ? ? ? ? ? ? node.left = newNode
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? insertNode(node, newNode)
? ? ? ? ? ? }
? ? ? ? } else {
? ? ? ? ? ? if (node.right === null) {
? ? ? ? ? ? ? ? node.right = newNode
? ? this.insert = function(key) {
? ? ? ? var newNode = new Node(key);
? ? ? ? if (root === null) {
? ? ? ? ? ? root = newNode
? ? ? ? ? ? insertNode(node, newNode)
? ? var nodes = [8, 3, 10, 1, 6, 14, 4, 7, 13];
? ? var binaryTree = new BinaryTree();
? ? nodes.forEach(function(key) {
? ? ? ? binaryTree.insert(key);
? ?})
//報(bào)錯(cuò)....
??? var binaryTree = new BinaryTree(); ?? ? ?? ?nodes.forEach(function(key) {?? ? ?? ??? ?binaryTree.insert(key);?? ? ?? ?})
即可
舉報(bào)
感受JS與數(shù)據(jù)結(jié)構(gòu)的魅力。
2 回答為什么我的報(bào)錯(cuò),而視頻上的不報(bào)錯(cuò)
1 回答node.key報(bào)錯(cuò)時(shí)怎么回事
1 回答為什么報(bào)錯(cuò)???求救啊
1 回答為什么我的代碼會(huì)報(bào)錯(cuò)?
4 回答我的代碼會(huì)報(bào)錯(cuò),求大神指點(diǎn)?。?/p>
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2017-12-23
this.insert這個(gè)接口應(yīng)該是屬于BinaryTree這個(gè)方法內(nèi)的,且在判斷節(jié)點(diǎn)有孩子的時(shí)候,遞歸調(diào)用時(shí),傳的是下一節(jié)點(diǎn),而不是該節(jié)點(diǎn)。
2017-11-13
? var root = null;
? ? function BinaryTree() {
? ? ? ? var Node = function(key) {
? ? ? ? ? ? this.key = key;
? ? ? ? ? ? this.left = null;
? ? ? ? ? ? this.right = null;
? ? ? ? }
? ? }
? ? var insertNode = function(node, newNode) {
? ? ? ? if (newNode.key < node.key) {
? ? ? ? ? ? if (node.left === null) {
? ? ? ? ? ? ? ? node.left = newNode
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? insertNode(node, newNode)
? ? ? ? ? ? }
? ? ? ? } else {
? ? ? ? ? ? if (node.right === null) {
? ? ? ? ? ? ? ? node.right = newNode
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? insertNode(node, newNode)
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? this.insert = function(key) {
? ? ? ? var newNode = new Node(key);
? ? ? ? if (root === null) {
? ? ? ? ? ? root = newNode
? ? ? ? } else {
? ? ? ? ? ? insertNode(node, newNode)
? ? ? ? }
? ? }
? ? var nodes = [8, 3, 10, 1, 6, 14, 4, 7, 13];
? ? var binaryTree = new BinaryTree();
? ? nodes.forEach(function(key) {
? ? ? ? binaryTree.insert(key);
? ?})
//報(bào)錯(cuò)....
2017-09-11
??? var binaryTree = new BinaryTree();
?? ? ?? ?nodes.forEach(function(key) {
?? ? ?? ??? ?binaryTree.insert(key);
?? ? ?? ?})
即可