【算法】创建二叉树、遍历二叉树

170 阅读1分钟

前序遍历的结果是【A, B, D, E, C, F, G】

中序的结果是【D, B, E, A, F, C, G】

后序遍历的结果是【D, E, B, F, G, C, A】

function Tree(value) {
	this.value = value;
	this.left = null;
	this.right = null;
}
let a = new Tree("A");
let b = new Tree("B");
let c = new Tree("C");
let d = new Tree("D");
let e = new Tree("E");
let f = new Tree("F");
let g = new Tree("G");

a.left = b;
a.right = c;
b.left = d;
b.right = e;
c.left = f;
c.right = g;

// 前序遍历
function preOrder(node) {
	if(node == null) return;
	console.log(node.value);
	preOrder(node.left);
	preOrder(node.right);
}
preOrder(a)

//中序遍历
function middleOrder(node) {
	if(node == null) return;
	middleOrder(node.left);
	console.log(node.value);
	middleOrder(node.right);
}
middleOrder(a)

//后序遍历
function postOrder(node) {
	if(node == null) return;
	postOrder(node.left);
	postOrder(node.right);
	console.log(node.value);
}
postOrder(a)