一、什么是树?
1.树有什么特点,什么是二叉树和二叉搜索树?
特点:一个树结构包含一系列存在父子关系的节点,每个节点都有一个父节点(根节点除外),或者0到多个子节点。
二叉树:二叉树中的节点最多有2个子节点
二叉搜索树:一种特殊的二叉树,相对较小的值保存在左节点中,较大的值保存在右节点中。
2.生活中常见的例子有哪些?
网盘文件夹树结构
二、请实现二叉搜索树(BST),并实现以下方法:
- insert(key):向树中插入一个新的键;
- search(key):树中查找一个键,如果节点存在返回true,不存在返回false;
- min():返回树中最小的值/键;
- max():返回树中最大的值/键;
remove(key):移除某个键;
inOrderTraverse中序遍历方式遍历
- preOrderTraverse先序遍历方式遍历
- postOrderTraverse后序遍历方式遍历
1 | function Node(key) { |
DFS 深度优先
先序遍历方式遍历:
中序遍历方式遍历 (从最小到最大顺序访问所有节点):
后序遍历方式遍历 :
BFS 广度优先
1 | function TreeNode(val) { |