二叉树算法的简单实现
来源:互联网 发布:dilili软件下载 编辑:程序博客网 时间:2024/05/21 10:47
今天简单了解了下二叉树算法。
二叉树:二叉树是用来存储数据的,就像树一样,它每个节点下会有左右两个节点构(没有也可以)成新的二叉树。
了解一下代码
package treepath;//创建二叉树,其实创建二叉树很简单。public class TreePath { int data; //根节点 TreePath left;//左树 TreePath right;//右树 //为二叉树赋值 TreePath(int data){ this.data = data; left = null; right = null; } //以下代码是将数组中的数据以图片中的形式展现出来 //:传入一个数(int data),判断data和根节点的大小 //如果大于根节点,判断右树是否为空,如果为空将data作为 //右树的根节点,在形成一个新的二叉树。我的理解 二叉树就是一个根节点加两个空的左右树,之后进行递归,将数据以图片形式展现出来。 public void insert(TreePath root,int data){ if(data >root.data){ if(root.right == null){ root.right = new TreePath(data); }else{ insert(root.right,data); } }else{ if(root.left == null){ root.left = new TreePath(data); }else{ insert(root.left,data); } } }}//不同方式的遍历 //先序遍历 根左右-》输出左 根-》左树-》右树//中根遍历 左根右-》 先输出 左树-》根-》右树//后根遍历 左右根-》 先输出 左树-》右树-》根(方法没写)package treepath;public class TreePreoreder {//先序遍历 public void inPreoreder(TreePath root){ if(root != null){ System.out.print(root.data+"->"); inPreoreder(root.left); inPreoreder(root.right); } }//中续遍历 public void midPreoreder(TreePath root){ if(root != null){ midPreoreder(root.left); System.out.print(root.data+"->"); midPreoreder(root.right); } }}//测试package treepath;public class TestTree { public static void main(String[] args) { //将数据存入到数组中,也就是图片中的数据 int[] array = {12,76,35,22,16,48,90,46,9,40}; TreePreoreder tp = new TreePreoreder(); //以12作为起始的节点 TreePath root = new TreePath(array[0]); //循环遍历,最后就是图片中的样子 for(int i =1;i<array.length;i++){ root.insert(root, array[i]); } //先序遍历 //tp.inPreoreder(root); //中序遍历 tp.midPreoreder(root); } }
当运行上面的程序后结果如下:
先根遍历:
12-9-76-35-22-16-48-46-40-90-
中根遍历:
9–12–16–22–35–40–46–48–76–90–
后根遍历:
9—16—22—40—46—48—35—90—76—12—
阅读全文
0 0
- 二叉树算法的简单实现
- 二叉树的遍历算法实现、以及所有简单操作
- 二叉树的简单实现(递归算法)
- 数据结构与算法之二叉树的Python简单实现
- 简单二叉树的实现
- 二叉树的简单实现
- 简单二叉树的实现
- 二叉树的简单实现
- 二叉树的简单实现
- 二叉树的简单实现
- 二叉树的简单实现
- 二叉树的算法实现
- 二叉树的几种简单算法
- 一个简单的二叉树排序算法
- 简单二叉树实现
- 简单实现二叉树
- 简单二叉树实现
- 二叉树简单实现
- IO设计模式:Reactor和Proactor对比
- 去掉ifream滚动条
- 关于arcgis server 发布地图的时候报错"Packaging succeeded but publishing failed"问题解决
- 2017/8/31日常笔记——后端总结(一)
- DB2时间查询函数大全,时间加减运算
- 二叉树算法的简单实现
- xcode 字体样式
- 5种网络IO模型
- 字符串全排列 java实现
- Kali安装中文输入法
- RabbitMQ
- H3C 三层交换机策略路由配置方法
- 新路程------wifi配置成WiFi热点
- 搭建高可用mongodb集群 replica set—— 深入副本集内部机制