面试题23:从上到下打印二叉树

来源:互联网 发布:java 参数 ... 传参 编辑:程序博客网 时间:2024/06/06 00:13

剑指offer面试题23:从上到下打印二叉树

题目描述:从上到下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。

    function Queue() {        var items = [];        this.enqueue = function(element) {            items.push(element);        }        this.dequeue = function() {            return items.shift();        }        this.isEmpty = function() {            return items.length === 0;        }        this.front = function() {            return items[0];        }    }    function BinarySearchTree() {        var Node = function(key) {            this.key = key;            this.left = null;            this.right = null;        }        var root = null;        this.insert = function(key) {            var newNode = new Node(key);            if(root === null) {                root = newNode;            }else{                insertNode(root, newNode);            }        }        var insertNode = function(node, newNode) {            if(newNode.key < node.key) {                if(node.left === null) {                    node.left = newNode;                } else {                    insertNode(node.left, newNode);                }            } else{                if(node.right === null) {                    node.right = newNode;                } else {                    insertNode(node.right, newNode);                }            }        }        this.root = function() {            return root;        }    }    function PrintFromTopBottom(tree) {        var queue = new Queue();        if(!tree) {            return false;        }        queue.enqueue(tree.root());        while(!queue.isEmpty()) {            var node = queue.front();            queue.dequeue();            console.log(node.key);            if(node.left !== null) {                queue.enqueue(node.left);            }            if(node.right !== null) {                queue.enqueue(node.right);            }        }    }    var tree = new BinarySearchTree();    tree.insert(8);    tree.insert(6);    tree.insert(10);    tree.insert(5);    tree.insert(7);    tree.insert(9);    tree.insert(11);    PrintFromTopBottom(tree);
原创粉丝点击