Binary Search Tree
- 必须有可比较性
- 左孩子比根节点小,右孩子比根节点大
- 如果想包含重复的元素的话,只需要定义:左子树小于等于节点;或者右子树大于等于节点
实现
1 | public class BST<E> extends Comparable<E> { |
前序遍历非递归实现
1 | // 首先将节点压入栈中,如果栈不为空这弹出栈顶元素,并将左右孩子压入栈中,首先压入左孩子然后压入右孩子 |
层序遍历实现
1 | // 利用队列 |
凡事必先骑上虎背
1 | public class BST<E> extends Comparable<E> { |
1 | // 首先将节点压入栈中,如果栈不为空这弹出栈顶元素,并将左右孩子压入栈中,首先压入左孩子然后压入右孩子 |
1 | // 利用队列 |