// 二叉树的生成
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