博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
请使用java来构造和遍历二叉树?
阅读量:5165 次
发布时间:2019-06-13

本文共 1937 字,大约阅读时间需要 6 分钟。

【分析】

二叉树的结构:根节点、左子树、右子树。其中左子树的值必须小于根节点,右子树的值必须大于根节点。构造这种树结构,就是创建一个类,并提供一个方法,当给定一个值时,它能够自动创建节点并自动挂到二叉树的合适位置。

二叉树的遍历:分为先序遍历、中序遍历和后序遍历。先序遍历:根、左、右。

中需遍历:左、根、右。

后续遍历:左、右、根。

二叉树的应用:加密解密、文件压缩、快速查询、快速遍历等。

 1、构造二叉树的节点对象,并提供插入方法。

1     private int data; //存放节点数据 2     private BinaryTree left; //左子树 3     private BinaryTree right; //右子树 4      5     /** 6      * 构造方法,创建新节点  7      */ 8     public BinaryTree(int data) { 9         this.data = data;10         this.left = null;11         this.right = null;12     }13     14     /**15      * 插入新节点16      */17     public void insert(BinaryTree root, int data){18         if(root !=null){19             if(data 

2.插入节点构造出二叉树,并通过先序遍历、中序遍历、后序遍历对二叉树进行遍历

1 public static void main(String[] args) { 2         BinaryTree root = new BinaryTree(6);  //创建根节点 3         int[] a = {2,1,4,5,3,8,6,7,9}; 4         for (int i = 0; i < a.length; i++) {  //插入节点 5             root.insert(root, a[i]); 6         } 7          8         preTraversal( root); 9         midTraversal( root);10         sufTraversal( root);11     }

 

1 //先序遍历 2     public static void preTraversal(BinaryTree root){ 3         if (root !=null) { 4             System.out.print(root.getData() +"-"); 5             preTraversal(root.getLeft()); 6             preTraversal(root.getRight()); 7         } 8          9     }10     11     //中序遍历12         public static void midTraversal(BinaryTree root){13             if(root !=null){14                 midTraversal(root.getLeft());15                 System.out.print(root.getData()+"-");16                 midTraversal(root.getRight());17             }18         }19         20     //后序遍历21         public static void sufTraversal(BinaryTree root){22             if(root !=null){23             sufTraversal(root.getLeft());24             sufTraversal(root.getRight());25             System.out.print(root.getData()+"-");26             }27         }

 

转载于:https://www.cnblogs.com/HapLe0/p/5694769.html

你可能感兴趣的文章
网页设计中常用的CSS命名规则整理
查看>>
后端接口时间戳或者随机数的作用
查看>>
IOS越狱环境搭建
查看>>
iOS 手势及触摸
查看>>
暑假培训的第一天
查看>>
pdf格式文档怎么拆分为多个文档
查看>>
vue插件集合
查看>>
Spring Security 入门(1-3-3)Spring Security - logout 退出登录
查看>>
新概念英语(1-51)A pleasant climate
查看>>
mac远程连接linux 服务器桌面by VNC
查看>>
chamfer_pcd
查看>>
数据结构与算法之递归
查看>>
集合遍历删除中遇到问题
查看>>
关于时间
查看>>
python 装饰器问题及解决方式
查看>>
SSH框架搭建与整合
查看>>
C++primer 9.2.3节练习
查看>>
mysql zk切换整个过程
查看>>
logstash 处理多行
查看>>
php 返回json 解析 报Wide character in print
查看>>