数据结构(七)——树结构(Tree) 之二叉树的常用操作

2024-03-31 19:58

本文主要是介绍数据结构(七)——树结构(Tree) 之二叉树的常用操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.链式存储的二叉树的操作

1.遍历二叉树

  • 先序遍历:根-->左-->右
  • 中序遍历:左-->根-->右
  • 后序遍历:左-->右-->根
  • 层级遍历:逐层从左到输出

2.二叉树结点的查找 

结点的查找也可以分为先序查找,中序查找和后序查找。方式和遍历方式相似。

3.删除二叉树结点

  • 二叉树抽象类代码
package cn.kimtian.tree;/*** 链式存储的二叉树** @author kimtian*/
public class BinaryTree {/*** 根结点*/TreeNode root;/*** 设置根结点** @param root 根结点*/public void setRoot(TreeNode root) {this.root = root;}/*** 获取根结点** @return TreeNode 根结点*/public TreeNode getRoot() {return root;}/*** 先序遍历*/public void frontShow() {if (root != null) {root.frontShow();}}/*** 中序遍历*/public void middleShow() {if (root != null) {root.middleShow();}}/*** 后序遍历*/public void behindShow() {if (root != null) {root.behindShow();}}/*** 查找二叉树的结点--先序查找** @param i 查找的结点的值*/public TreeNode frontSearch(int i) {return root.frontSearch(i);}/*** 查找二叉树的结点--中序查找** @param i 查找的结点的值*/public TreeNode middleSearch(int i) {return root.middleSearch(i);}/*** 查找二叉树的结点--后序查找** @param i 查找的结点的值*/public TreeNode behindSearch(int i) {return root.behindSearch(i);}/*** 删除二叉树的结点/子树** @param i 查找的结点的值*/public void deleteTreeNode(int i) {if (root.value == i) {root = null;} else {root.deleteTreeNode(i);}}
}
  • 二叉树的结点
package cn.kimtian.tree;/*** 树里面的结点** @author kimtian*/
public class TreeNode {/*** 树里面的值,结点的权*/int value;/*** 左儿子*/TreeNode leftNode;/*** 右儿子*/TreeNode rightNode;public TreeNode(int value) {this.value = value;}public void setLeftNode(TreeNode leftNode) {this.leftNode = leftNode;}public void setRightNode(TreeNode rightNode) {this.rightNode = rightNode;}/*** 先序遍历--递归思想*/public

这篇关于数据结构(七)——树结构(Tree) 之二叉树的常用操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/865208

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Java Multimap实现类与操作的具体示例

《JavaMultimap实现类与操作的具体示例》Multimap出现在Google的Guava库中,它为Java提供了更加灵活的集合操作,:本文主要介绍JavaMultimap实现类与操作的... 目录一、Multimap 概述Multimap 主要特点:二、Multimap 实现类1. ListMult

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.