1. 程式人生 > >【二叉樹】統計成績出現的次數

【二叉樹】統計成績出現的次數

程式設計實現二叉搜尋樹來記錄考試成績的分佈。

解題:
修改 Node 物件, 為其增加一個記錄成績出現頻次的成員。

function Node(data,left,right){
    this.data = data;
    this.count = 1;
    this.left = left;
    this.right = right;
}

同時還需要一個方法, 當在 BST 中發現某成績時, 需要將出現的次數加 1, 並且更新該節點。

function update(data){
    var grade = this.findup(data);
    grade.count++;
    return
grade; }

最後建立一棵二叉搜尋樹並將資料逐一插入。

var gradedistro = new BST();
for (var i = 0; i < grades.length; ++i) {
    var g = grades[i];
    var grade = gradedistro.findup(g);
    if (grade == null) {
        gradedistro.insert(g);
    } else {
        gradedistro.update(g);
    }
}