js判斷爲數字且不爲空,二叉樹深度廣度

一、判斷爲數字且部位空

//判斷爲數字
export function  isNumber(obj) { 
  return typeof obj === 'number' && !isNaN(obj) 
}
//判斷是否爲數字且不爲空
export function isRealNum(val){
    if(val === "" || val ==null){
        return false;
    }
    if(!isNaN(val)){
        return true;
    }else{
        return false;
    }
}

二、二叉樹的深度遍歷、廣度遍歷

const tree = {
    value: 1,
    left: {
        value: 2,
        left: {
            value: 4,
            left: {
                value: 8
            },
            right: {
                value: 9
            }
        },
        right: {
            value: 5
        }
    },
    right: {
        value: 3,
        left: {
            value: 6
        },
        right: {
            value: 7
        }
    }
}
//深度優先:
function dfsRecursion(tree) {
    let res = [];
    function dfs(node){
        if(node) {
            res.push(node.value);
            dfs(node.left);
            dfs(node.right);
        }
    }
    dfs(tree);
    return res;
}
dfsRecursion(tree)
//結果 [1, 2, 4, 8, 9, 5, 3, 6, 7]
//廣度優先:
function bfs(tree) {
    let res = [];
    let arr = [];
    arr.push(tree);
    while(arr.length) {
        const node = arr.shift();
        res.push(node.value);
        if(node.left) {
            arr.push(node.left);
        }
        if(node.right) {
            arr.push(node.right);
        }
    }
    return res;
}
bfs(tree)
//結果:[1, 2, 3, 4, 5, 6, 7, 8, 9]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章