题目:若二叉树为二叉链表存储结构,写出二叉树的前序遍历的非递归算法。
解题思路:和中序遍历很相似,只是遍历到结点要及时访问。
具体算法如下:
这里使用到建立二叉树方法createBT(strBT)
function preOrder1(BT) {
let stack=new Array(MaxSize), top=-1, p=BT
do {
while ( p!=null ) {
stack[++top] = p
console.log(p.data)
p = p.lchild
}
p = stack[top--]
p = p.rchild
} while (!(p==null&&top==-1));
}
var strBT="A(B(D,E(G)),C(F(,H)))@"
var BT = createBT(strBT)
postOrder1(BT)
网友评论