数据结构 - 二叉树
概念
又被称为二叉搜索树(binarySearchTree)
- 根节点
- 左子树
- 右子树
创建二叉树
创建节点
1 | class CreateNode { |
创建根节点
1 | class BinarySearchTree { |
创建插入节点方法
1 | class BinarySearchTree { |
按照上述代码,我们可以得到下图的树形结构(图有点糙,自行脑部-。-)
获得树形结构的最大值&最小值
1 | class BinarySearchTree { |
遍历二叉树
前序遍历:根节点->左子树->右子树
中序遍历:左子树->根节点->右子树
后序遍历:左子树->右子树->根节点
先序遍历
- 按照从左到右的顺序从根节点开始
- 依次遍历左子树节点(左子树左边、左子树右边)
- 右子树节点(右子树左边、右子树右边)
1 | class BinarySearchTree { |
中序遍历
- 左子树按照从小到大依次查找 (如果最小的左子树没有了子节点,查找同级的右子树)
- 直到找到根节点
- 右子树按照从小到大依次查找 (如果最小的左子树没有了子节点,查找同级的右子树)
1 | class BinarySearchTree { |
后序遍历
- 从小到大从左到右依次查找
- 找到左子树最小的值
- 判断有没有同级右子树,查找右子树
- 返回到父子树,判断父子树有没有同级,有的话查找同级,没有的话继续向上查找,
1 | class BinarySerachTree { |
完整代码
1 | /* |
I'm so cute. Please give me money.
- Post link: https://blog.gaocaipeng.com/2020/07/11/ku9gg4/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.