二叉树的基础遍历
1:前序遍历:先访问根结点,然后再访问左子树,最后访问右子树;
2:中序遍历:先访问左子树,然后再访问根结点,最后访问右子树;
3:后序遍历:先访问左子树,然后再访问右子树,最后访问根结点;
示例如下:
前序遍历的API设计:
public Queue<Key> preErgodic():使用前序遍历,获取整个树中的所有键 private void preErgodic(Node x,Queue<Key> keys):使用前序遍历,把指定树x中的所有键放入到keys队列中
实现步骤:
- 把当前结点的key放入到队列中;
- 找到当前结点的左子树,如果不为空,递归遍历左子树;
- 找到当前结点的右子树,如果不为空,递归遍历右子树;
代码实现:
//使用前序遍历获取整个树中所有的键 public Queue<Key> preErgoidic(){ Queue<Key> keys = new Queue<>(); preErgoidic(root,keys); return keys; } //使用前序遍历获取指定树x的所有键,并放到Keys