我用Java写了一个简单的二叉树算法

二叉树是一种常见的数据结构,它是由节点和连接节点的边组成的。每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树算法包括遍历、查找、插入、删除等操作。

class Node {int data;Node left, right;public Node(int item) {data = item;left = right = null;}
}class BinaryTree {Node root;void printPostorder(Node node) {if (node == null)return;printPostorder(node.left);printPostorder(node.right);System.out.print(node.data + " ");}void printInorder(Node node) {if (node == null)return;printInorder(node.left);System.out.print(node.data + " ");printInorder(node.right);}void printPreorder(Node node) {if (node == null)return;System.out.print(node.data + " ");printPreorder(node.left);printPreorder(node.right);}void printPostorder() {printPostorder(root);}void printInorder() {printInorder(root);}void printPreorder() {printPreorder(root);}public static void main(String[] args) {BinaryTree tree = new BinaryTree();tree.root = new Node(1);tree.root.left = new Node(2);tree.root.right = new Node(3);tree.root.left.left = new Node(4);tree.root.left.right = new Node(5);System.out.println("Preorder traversal of binary tree is:");tree.printPreorder();System.out.println("\nInorder traversal of binary tree is:");tree.printInorder();System.out.println("\nPostorder traversal of binary tree is:");tree.printPostorder();}
}

这个案例中,我们定义了一个Node类表示二叉树的节点,包含一个整型数据和左右子节点。BinaryTree类包含了打印前序遍历、中序遍历和后序遍历的方法。在main方法中,我们创建了一个二叉树实例,并调用相应的方法进行遍历。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/658358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[NCTF2019]Fake XML cookbook(特详解)

先试了一下弱口令,哈哈习惯了 查看页面源码发现xml function doLogin(){var username $("#username").val();var password $("#password").val();if(username "" || password ""){alert("Please enter the usern…

微信小程序如何调整checkbox和radios选择框的大小和样式

目录 修改选中框大小 修改Checkbox样式 修改Radio样式 修改选中框大小 直接使用width和height调整checkbox和radios选择框的大小是无效的,简单的调整大小可以通过修改transform值,如下所示: .wxss .fill-checkbox{transform: scale(0.5,0.5); } scale参数分别为在长…

二分查找(c++题解)

题目描述 在一个单调递增的序列里查找X。 如果找到x&#xff0c;则返回x在数组中的位置 如果没有找到&#xff0c;则返回&#xff0d;1 输入格式 第1行&#xff1a;1个整数N(1<N<2000000), 表示元素的个数 第2行开始的若干行&#xff0c;每行10个空格分开的整数&am…

SpringMVC处理ajax请求(@RequestBody注解),ajax向后端传递的数据格式详解

目录 RequestBody注解简单介绍 RequestBody获取json格式的请求参数 Servlet方式处理ajax请求 本文讲解两种方式实现SpringMVC与Ajax交互&#xff0c;1、通过SpringMVC提供的注解RequestBody处理ajax请求&#xff1b;2、通过JavaEE时期的Servlet来处理 RequestBody注解简单介…

CISAW和CISP-PTE证书选择指南

&#x1f4e3;在信息安全领域&#xff0c;选择合适的证书可以为你的职业生涯增添光彩。很多从事信息渗透行业的朋友经常讨论CISP-PTE和CISAW之间的选择问题。今天就从4个方面带你详细了解这两张证书&#xff0c;帮你做出明智的选择&#xff01; 1️⃣证书的行业前景 &#x1f4…

【数据结构1-4】图的基本应用

一、【P5318】查找文献&#xff08;邻接表DFSBFS&#xff09; 本题是图的遍历模板题&#xff0c;需要使用DFS和BFS遍历方法。 由于本题最多有1e5个顶点&#xff0c;如果采用邻接矩阵存储图的话需要4*1e10 Byte空间&#xff0c;显然会超内存&#xff0c;因此这里采用邻接表的方法…

【Nuxt3】layouts的使用

简言 Nuxt 提供了一个布局框架&#xff0c;用于将常见的 UI 模式提取为可重用的布局。 为了获得最佳性能&#xff0c;在使用时&#xff0c;放置在此目录中的组件将通过异步导入自动加载。 layouts layouts文件夹存放的是ui布局文件&#xff0c;就是实现一个页面整体架构规则的…

线程池相关的类学习

Executor public interface Executor {//执行任务void execute(Runnable command); }ExecutorService public interface ExecutorService extends Executor {//关闭线程池&#xff0c;不能再向线程池中提交任务&#xff0c;已存在与线程池中的任务会继续执行&#xff0c;直到…

超声波风速风向仪的工作原理

TH-WQX2在我们的日常生活中&#xff0c;气象条件的影响无处不在。无论是准备户外活动&#xff0c;还是安排农业生产&#xff0c;了解当天的风速和风向都是非常关键的。随着科技的发展&#xff0c;超声波风速风向仪的出现为气象监测带来了革命性的变化。 一、超声波风速风向仪的…

聚合支付,实现支付宝微信扫二维码直接跳转支付

具体要实现的功能&#xff1a;手机支付宝或微信扫描同一个二维码&#xff0c;跳转各自的支付 微信使用&#xff1a;jsapi支付 支付宝&#xff1a;wappay 上篇已写了如何实现内网穿透调试就不多叙述 1.判断客户端类型&#xff0c;从request的中将user-agent拉取下来&#xf…

【Javaweb】【C00157】基于SSM的宠物护理预定系统(论文+PPT)

基于SSM的宠物护理预定系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的宠物护理预订系统 本系统分为前台系统模块、后台管理员模块以及后台会员用户模块 其中前台系统模块&#xff1a;当游客打开系统的网址后&…

springboot(ssm同城上门喂遛宠物系统 宠物预约系统Java系统

springboot(ssm同城上门喂遛宠物系统 宠物预约系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&a…

报错找不到msvcp140.dll怎么办?msvcp140.dll缺失的详细修复指南

在计算机系统运行过程中&#xff0c;如果出现msvcp140.dll文件丢失的情况&#xff0c;可能会引发一系列显著的问题和故障。首先&#xff0c;我们需要理解msvcp140.dll究竟是什么以及它在操作系统中扮演何种角色。msvcp140.dll是一个动态链接库&#xff08;DLL&#xff09;文件&…

在线版XD,免费使用,功能全面,设计神器!

Adobe XD是什么软件&#xff1f; Adobe XD软件是一个结合设计和建立原型功能的一站式UX/UI设计平台。在XD软件中&#xff0c;数字团队可以进行移动应用、网页设计和原型制作。与此同时&#xff0c;Adobe XD软件也是一种跨平台设计产品&#xff0c;结合设计和建立原型功能&…

Android悬浮窗实现步骤

最近想做一个悬浮窗秒表的功能&#xff0c;所以看下悬浮窗具体的实现步骤 1、初识WindowManager 实现悬浮窗主要用到的是WindowManager SystemService(Context.WINDOW_SERVICE) public interface WindowManager extends ViewManager {... }WindowManager是接口类&#xff0c…

MySQL-窗口函数

介绍&#xff1a; MSQL8.0新增窗口函数商口函数又被称为开窗函数&#xff0c;与Oracle窗口函数类似&#xff0c;属于MysaL的一大特点 非聚合窗口函数是相对于聚函数来说的。聚合函数是对一组数据计算后返回单个值(即分组)&#xff0c;非聚合函数一次只会处理一行数据。窗口聚…

Unity项目打包的方法(之一)

在 Unity 中&#xff0c;将项目打包成 .unitypackage 文件和直接压缩 Assets、Packages 和 ProjectSettings 目录有几个关键区别&#xff0c;主要体现在打包方式、使用目的和包含的内容上。 打包成 UnityPackage .unitypackage 是 Unity 的一种打包格式&#xff0c;它允许你将项…

leetcode—划分字母区间—贪心算法

题目描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。…

盲盒小程序开发,实现“双收益”

盲盒在我国是一个发展潜力较高的市场&#xff0c;盲盒具有的刺激和收藏价值&#xff0c;深受消费者的喜爱&#xff0c;盲盒的“隐藏款”机制&#xff0c;能够为消费者带来惊喜感。盲盒一般与影视动漫IP合作&#xff0c;推出盲盒商品&#xff0c;这也是深受年轻人追捧的一大特点…

Redis内存设置

通过redis-cli进入Redis命令行 redis权限认证命令&#xff1a;auth 查看redis内存使用情况的命令&#xff1a;info memory 查看最大内存命令&#xff1a;config get maxmemory 设置最大内存命令&#xff1a;config set maxmemory 也可以通过redis.conf配置文件修改最大内存…