中序遍历是一种以上行顺序访问二叉树所有节点的遍历方式,也就是从小到大的顺序。inOrderTraverse方法接收一个回调函数作为参数,用递归的方式遍历。
先序遍历-------首先检查以参数形式传入的节点是否为null(--这是停止递归继续执行的判断条件--),然后,递归调用相同的函数来访问左侧子节点。接着对这个节点进行一些操作(callback方法),然后在访问右侧子节点。
中序遍历-------与先序遍历不同的是,执行顺序是先访问节点本身,然后访问它的左侧子节点,最后是右侧子节点。
function BinarySearchTree() { var Node = function (key) { this.key = key; this.left = null; this.right = null; }; //根节点 var root = null; var insertNode = function (node, newNode) { if(newNode.key