簡體   English   中英

JavaScript-二進制搜索樹-inOrderTraverse()函數將“未定義”日志記錄到控制台窗口嗎?

[英]JavaScript - Binary Search Tree - inOrderTraverse() function log “undefined” to console window?

我正在使用JavaScript實現AVL樹,並且目前正在使用inOrderTraverse()函數。 問題是:當我要將節點的值記錄到控制台窗口時,它顯示為“未定義”。

我已經從https://gist.github.com/TheIronDeveloper/6604713引用了,我認為我的代碼和我從中引用的代碼之間並沒有太大區別。

這是我用於實現AVL樹的JS代碼: http : //jsfiddle.net/nrU4T/https://dl.dropboxusercontent.com/u/178536659/avl%20tree%20javascript/avlTree.js

我得到的結果是在這里:(我在Chrome上運行此代碼)

Node 12 added.     avlTree.js:205
Nodes count = 1    avlTree.js:206
undefined          avlTree.js:64
                   avlTree.js:68
Node 18 added.     avlTree.js:264
Nodes count = 2    avlTree.js:265
undefined          avlTree.js:64
undefined          avlTree.js:64
                   avlTree.js:68
                   avlTree.js:68
Node 20 added.     avlTree.js:264
Nodes count = 3    avlTree.js:265
undefined          avlTree.js:64
undefined          avlTree.js:64
undefined          avlTree.js:64

請幫助我解決此錯誤...任何評論將不勝感激。 非常感謝你們。

它是你的錯誤:

inOrderTraverse()函數中,您必須打印this.data而不是this.value

inOrderTraverse: function() {
    if(this.left !== null) {
        this.left.inOrderTraverse();
    }
    console.log(this.data); // <-- here - not this.value
    if(this.right !== null) {
        this.right.inOrderTraverse();
    }
    console.log("\n");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM