import java.util.Stack;
public class Front {
//非递归前序遍历
public void front(TreeNode node) {
Stack<TreeNode> stack = new Stack<>();
stack.push(node);
while(!stack.isEmpty()) {
TreeNode newnode = stack.pop();
System.out.println(newnode.data);
if(newnode.right != null) {
stack.push(newnode.right);
}
if(newnode.left != null) {
stack.push(newnode.left);
}
}
}
//非递归中序遍历
public void mid(TreeNode node) {
Stack<TreeNode> stack = new Stack<>();
while(!stack.isEmpty() || node != null) {
if(node != null) {
stack.push(node);
node = node.left;
}else {
TreeNode newnode = stack.pop();
System.out.println(newnode.data);
node = node.right;
}
}
}
//非递归后序遍历
public void bih(TreeNode node) {
Stack<TreeNode> stack1 = new Stack<>();
Stack<TreeNode> stack2 = new Stack<>();
stack1.push(node);
while(!stack1.isEmpty()) {
TreeNode newnode = stack1.pop();
stack2.push(newnode);
if(newnode.left != null) {
stack1.push(newnode.left);
}
if(newnode.right != null) {
stack1.push(newnode.right);
}
}
while(!stack2.isEmpty()) {
System.out.println(stack2.pop().data);
}
}
}
非递归前序遍历二叉树,非递归中序遍历二叉树,非递归后续遍历二叉树
最新推荐文章于 2024-07-17 12:11:36 发布