Java构造二叉树、树形结构先序遍历、中序遍历、后序遍历
package com.example.demo;
public class BTree {
public int data;
public BTree left;
public BTree rigth;
public boolean hasLeft(){
return left != null;
}
public boolean hasRigth(){
return rigth != null;
}
public BTree(){}
}
class main{
public static void main(String[] args) {
BTree root = new BTree();
root.data = ;
BTree node1 = new BTree();
node1.data = ;
BTree node2 = new BTree();
node2.data = ;
BTree node3 = new BTree();
node3.data = ;
BTree node4 = new BTree();
node4.data = ;
BTree node5 = new BTree();
node5.data = ;
BTree node6 = new BTree();
node6.data = ;
root.left = node1;
root.rigth = node2;
node1.left = node3;
node1.rigth = node4;
node2.left = node5;
node2.rigth = node6;
System.out.println("先序遍历二叉树:");
queryFirst(root);
System.out.println();
System.out.println("中序遍历二叉树:");
queryMiddle(root);
System.out.println();
System.out.println("后序遍历二叉树:");
queryLast(root);
System.out.println();
}
//先序遍历二叉树
public static void queryFirst(BTree tree){
if(tree == null){
return;
}
System.out.print(tree.data+"\t");
if(tree.hasLeft()){
queryFirst(tree.left);
}
if(tree.hasRigth()){
queryFirst(tree.rigth);
}
}
//中序遍历二叉树
public static void queryMiddle(BTree tree){
if(tree == null){
return;
}
if(tree.hasLeft()){
queryMiddle(tree.left);
}
System.out.print(tree.data+"\t");
if(tree.hasRigth()){
queryMiddle(tree.rigth);
}
}
//后序便利二叉树
public static void queryLast(BTree tree){
if(tree == null){
return;
}
if(tree.hasLeft()){
queryLast(tree.left);
}
if(tree.hasRigth()){
queryLast(tree.rigth);
}
System.out.print(tree.data+"\t");
}
}
先序遍历二叉树:
中序遍历二叉树:
后序遍历二叉树:
Java构造二叉树、树形结构先序遍历、中序遍历、后序遍历的更多相关文章
- [二叉树建树]1119. Pre- and Post-order Traversals (30) (前序和后序遍历建立二叉树)
1119. Pre- and Post-order Traversals (30) Suppose that all the keys in a binary tree are distinct po ...
- 《Java数据结构》树形结构
树形结构是一层次的嵌套结构. 一个树形结构的外层和内层有相似的结构, 所以这种结构多可以递归的表示.经典数据结构中的各种树形图是一种典型的树形结构:一颗树可以简单的表示为根, 左子树, 右子树. 左子 ...
- LeetCode 145. 二叉树的后序遍历 (用栈实现后序遍历二叉树的非递归算法)
题目链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal/ 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [ ...
- 天梯 L2 树的遍历(已知后序中序求层序)
树的遍历 (25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数.第二行 ...
- DS实验题 Order 已知父节点和中序遍历求前、后序
题目: 思路: 这题是比较典型的树的遍历问题,思路就是将中序遍历作为位置的判断依据,假设有个节点A和它的父亲Afa,那么如果A和Afa的顺序在中序遍历中是先A后Afa,则A是Afa的左儿子,否则是右儿 ...
- 【MySQL疑难杂症】如何将树形结构存储在数据库中(方案一、Adjacency List)
今天来看看一个比较头疼的问题,如何在数据库中存储树形结构呢? 像mysql这样的关系型数据库,比较适合存储一些类似表格的扁平化数据,但是遇到像树形结构这样有深度的人,就很难驾驭了. 举个栗子:现在有一 ...
- PAT 甲级 1086 Tree Traversals Again (25分)(先序中序链表建树,求后序)***重点复习
1086 Tree Traversals Again (25分) An inorder binary tree traversal can be implemented in a non-recu ...
- java list实现树形结构
1.javabean import java.util.List; public class TreeNode { private String id; private String parentId ...
- Java数据封装成树形结构,多级
参考地址:https://blog.csdn.net/chendu500qiang/article/details/91493147 1.实体类 @data public class PublishS ...
随机推荐
- [转]Cookie详解
从事 Web 开发已有近17个月:在学以致用的工作学习里,对于不怎么使用的部分,多少有些雾里探花的窘迫感-差不多是了解一二,然而又非真切的明晰:这就使得再用的时候,总要去再搜索一番:如此颇为难受,倒不 ...
- vue类似tab切换的效果,显示和隐藏的判断。
两者切换,动态显示对应的列表详情. 通过v-show的判断 数据驱动
- Struts2常量_Action配置路径_通配符
Struts2中常用的常量 指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker .velocity的输出 <cons ...
- Web测试方法_02
1.页面链接检查 检查每一个链接是否都有对应的页面,页面与页面之间的来回切换是否正常响应,包括一些返回页面的链接是否正常,还要检查点击图片所链接的页面是否准确展示. 2.相关性检查 功能相关性检查:例 ...
- MATLAB实现OTSU
目录 1.OTSU算法原理简述: 2.MATLAB实现代码 @ 1.OTSU算法原理简述: 最大类间方差是由日本学者大津(Nobuyuki Otsu)于1979年提出,是一种自适应的阈值确定方法.算法 ...
- C#编程 线程,任务和同步(1) 基础认识
线程 对于所有需要等待的操作,例如移动文件,数据库和网络访问都需要一定的时间,此时就可以启动一个新的线程,同时完成其他任务.一个进程的多个线程可以同时运行在不同的CPU上或多核CPU的不同内核上. 线 ...
- ubuntu 16.04 server 扩容(LVM)磁盘
因为发现我的本地server出现磁盘满了的情况 所以进行lvm的扩容 1 查看磁盘情况 df -h 原本发现 /dev/mapper/ubuntu1604--vg-root 这个磁盘满了 所以要进行扩 ...
- webdriervAPI(键盘事件)
from selenium import webdriver from selenium.webdriver.common.keys import Keys #导入键盘操作事件 driver ...
- flask的方法视图
from flask import Flask,views,render_template,request app = Flask(__name__) app.debug = True class L ...
- Python学习【day02】- 运算符与基本类型
Python语言支持以下类型的运算符: 算术运算符 操作符 描述 示例(a=10.b=21) + 加法 相加运算两侧的值 a + b = 31 - 减法 操作符右侧数减去左侧操作数 a – b = - ...