// 二叉树的生成 function NodeTree(value){ this.value = value; this.left = null; this.right = null; } let ta = new NodeTree('a'); let tb = new NodeTree('b'); let tc = new NodeTree('c'); let td = new NodeTree('d'); let te = new NodeTree('e'); let tf = new NodeTree('f'); let tg = new NodeTree('g'); ta.left = tb; ta.right = tc; tb.left = td; tb.right = te; tc.left = tf; tc.right = tg; // 形如上面的这个格式,ta被称为一颗二叉树。 满二叉树, 完全二叉树 // 二叉树的遍历,分为三种,前序遍历,中序遍历,后续遍历 /** * 二叉树的前序遍历 * @param treeList * @returns {null} */ function treeFrontEach(treeList){ if (!treeList || treeList.value === null) return null; console.log(treeList.value); treeFrontEach(treeList.left); treeFrontEach(treeList.right); } // treeFrontEach(ta); 输出的结果 a b d e c f g /** * 中序遍历 * @param treeList * @returns {null} */ function treeMiddleEach(treeList){ if (!treeList || treeList.value === null) return null; treeMiddleEach(treeList.left); console.log(treeList.value); treeMiddleEach(treeList.right); } // treeMiddleEach(ta); 输出的结果 d b e a c f c g /** * 后序遍历 * @param treeList * @returns {null} */ function treeEndEach(treeList){ if (!treeList || treeList.value === null) return null; treeEndEach(treeList.left); treeEndEach(treeList.right); console.log(treeList.value); } treeEndEach(ta); 输出结果 d e b f g c a