📄 binarytree.java
字号:
public class BinaryTree
{
BinaryNode root;
public BinaryTree()
{
root = null;
}
public BinaryTree(BinaryNode r)
{
root = r;
}
public boolean isEmpty()
{
return root == null;
}
public void visit(BinaryNode x)
{
x.print();
}
public void preorder()
{
Stack s = new Stack();
BinaryNode p = root;
for(;;)
{
while(p!= null)
{
visit(p);
s.push(p);
p = p.left;
}
if (!s.isEmpty())
{
p = s.pop().element;
p = p.right;
}
else return;
}
}
public void inorder()
{
Stack s = new Stack();
BinaryNode p = root;
for(;;)
{
while(p!= null)
{
s.push(p);
p = p.left;
}
if(!s.isEmpty())
{
p = s.pop().element;
visit(p);
p = p.right;
}
else return;
}
}
public void postorder()
{
Stack s = new Stack();
BinaryNode p = root;
ListNode t;
for(;;)
{
while(p!= null)
{
s.push(p,1);
p = p.left;
}
t = s.pop(); p = t.element;
while(t.tag==2||p.right==null)
{
visit(p);
if(!s.isEmpty())t = s.pop();
else return;
p = t.element;
}
if(t.tag == 1)s.push(p,2);
p = p.right;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -