数据结构(七)——树结构(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

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A