数据结构和算法——树结构(二叉树的创建、查找、遍历和删除)

本文介绍了二叉树的基本概念,包括二叉树的定义、满二叉树和完全二叉树的特点。重点讨论了二叉树的链式存储结构,并详细讲解了二叉树的创建、添加节点、前中后序遍历及删除节点的代码实现,帮助读者掌握二叉树的操作技巧。
摘要由CSDN通过智能技术生成

(1)二叉树

   二叉树的任意一个节点的子节点不超过两个。

(2)满二叉树

   所有的叶子节点都在最后一层,而且节点的总数为2^-1,n是树的高度。

(3)完全二叉树

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

(4)二叉树的链式存储结构
在这里插入图片描述

(5)二叉树的代码实现(创建、添加节点、遍历节点、删除节点)

   ① 先说一下二叉树的三种遍历方式:前序遍历、中序遍历和后序遍历。

    我们以二叉树的根节点为基准看,前序遍历先找根节点,再找左子节点,最后找右子节点;中序遍历先找左子节点,再找根节点,最后找右子节点;后序遍历先找左子节点,再找右子节点,最后找根节点。我们可以看出根节点在三种遍历方式的次序也是前中后。

看下面的二叉树的三种遍历结果:
在这里插入图片描述

1、前序:1 2 4 5 3 6 7  
2、中序:4 2 5 1 6 3 7
3、后序:4 5 2 6 7 3 1

   ② 二叉树的创建、添加子节点、遍历和删除节点

//二叉树类

public class BinaryTree {
   
    //根节点
    private TreeNode root;
    //创建根节点
    public void setRoot( TreeNode root){
   
        this.root = root;
    }
    //获取根节点
    public TreeNode getRoot() {
   
        return root;
    }
    //前序遍历根节点
    public void frontShow() {
   
        if (root != null){
   
            root.frontShow();
        }
    }
    //中序遍历
    public void midShow() {
   
        if (root != null){
   
            root.midShow();
        }
    }
    //后序遍历
    public void rearShow() {
   
        if (root != null){
   
            root.rearShow();
        }
    }
    //删除节点
    public void delete(int i) {
   
        if (root.getValue() == i){
   
            root = nul
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值