【数据结构】 用Kotlin实现二叉树的创建、遍历、查找、删除

本文介绍了如何使用Kotlin实现二叉树的数据结构,包括二叉树的概念、满二叉树与完全二叉树的区别,以及创建、遍历(前序、中序、后序)、查找和删除节点的操作。提供了相应的Kotlin代码示例,详细阐述了每个操作的实现过程。
摘要由CSDN通过智能技术生成

的查找性能和插入性能优于线性结构(数组、链表)。

树
二叉树:任何节点的子节点数量不超过2

二叉树
二叉树的子节点分为左节点和右节点。

下图是两棵树
不同的两棵树

满二叉树:所有叶子节点都在最后一层,而且节点总满二叉树
数为2^n-1。

完全二叉树:所有叶子节点都在最后一层或倒数第二层,且最后一层的叶子节点都在左边连续,倒数第二层的叶子节点在右边连续。

完全二叉树
下图不是完全二叉树,第4层的叶子节点不是从左至右
不是完全二叉树

下图也不是完全二叉树,第3层右边的叶子结点没有填满。

在这里插入图片描述
创建二叉树

-------1
----2----3

代码

(1)创建树类:

class BinaryTree() {
   
    var root: TreeNode ?= null
}

(2)创建节点类:

class TreeNode(var value: Int) {
   
    var left: TreeNode ?= null
    var right: TreeNode ?= null
}

(3)创建二叉树:

fun main() {
   
    // 创建一棵空树
    val binaryTree = BinaryTree()
    // 创建一个根节点
    val root = TreeNode(1)
    // 把根节点赋给树
    binaryTree.root = root
    // 创建2个节点
    val rootLeft = TreeNode(2)
    val rootRight = TreeNode(3)
    // 把跟节点赋给树
    binaryTree.root?.left = rootLeft
    binaryTree.root?.right = rootRight
}

遍历二叉树

在这里插入图片描述
上图的前序、中序、后序分别为:

前序(根左右):1,2,4,5 ,3,6,7
中序(左根右):4,2,5 ,1,6,3,7
后序(左右根):4,5,2 ,6,7,3 ,1

代码

fun main() {
   
    // 创建一棵树
    val binaryTree = BinaryTree()

    // 第一层
    // 创建一个根节点
    val root = TreeNode(1)
    // 把根节点赋给树
    binaryTree.root = root

    // 第二层
    // 创建2个节点
    val rootLeft = TreeNode(2)
    val rootRight = TreeNode(3)
    // 把跟节点赋给树
    binaryTree.root?.left = rootLeft
    binaryTree.root?.right = rootRight

    // 第三层
    // 为第二层的左节点创建2个节点
    rootLeft.left = TreeNode(4)
    rootLeft.right = TreeNode(5)
    // 为第二层的右节点创建2个节点
    rootRight.left = TreeNode(6)
    rootRight.right = TreeNode(7)

    print("前序遍历: ")
    binaryTree.frontShow()
    println<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值