課程
/計算機基礎
/算法與數據結構
/Javascript實現二叉樹算法
你們這個代碼有沒有自己測試過?我怎么測試報錯,說insert方法不存在
2017-09-10
源自:Javascript實現二叉樹算法 1-4
正在回答
this.insert這個接口應該是屬于BinaryTree這個方法內的,且在判斷節點有孩子的時候,遞歸調用時,傳的是下一節點,而不是該節點。
? 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);
? ?})
//報錯....
??? var binaryTree = new BinaryTree(); ?? ? ?? ?nodes.forEach(function(key) {?? ? ?? ??? ?binaryTree.insert(key);?? ? ?? ?})
即可
舉報
感受JS與數據結構的魅力。
2 回答為什么我的報錯,而視頻上的不報錯
1 回答為什么報錯???求救啊
1 回答node.key報錯時怎么回事
1 回答為什么我的代碼會報錯?
1 回答JS中這么定義數組 不報錯么
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-12-23
this.insert這個接口應該是屬于BinaryTree這個方法內的,且在判斷節點有孩子的時候,遞歸調用時,傳的是下一節點,而不是該節點。
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);
? ?})
//報錯....
2017-09-11
??? var binaryTree = new BinaryTree();
?? ? ?? ?nodes.forEach(function(key) {
?? ? ?? ??? ?binaryTree.insert(key);
?? ? ?? ?})
即可