关于二叉树,首先考虑的是二叉树的创建及遍历

参考网上的资料,结合自身的情况,给出二叉树的基本功能的java实现。

源码如下:

//参考:http://www.linuxidc.com/Linux/2013-11/93170.htm
import java.util.LinkedList;
class Node{int val = 0;Node leftChild;Node rightChild;Node(int x) {val = x;}
}
public class binaryTree {private static Node root  = null;private static int count = 0;public static void main(String[] args) {int[] vals ={1,2,4,0,0,5,0,0,3,0,0};root = createBinaryTree(vals);preTraverseTree(root);System.out.println();midTraverseTree(root);System.out.println();levelTraverse(root);}// 使用先序创建一个二叉树public static Node createBinaryTree(int[] values) {Node root = null;if (count >= values.length || values[count++]==0) {root = null;} else {root = new Node(values[count - 1]);root.leftChild = createBinaryTree(values);root.rightChild = createBinaryTree(values);}return root;}// 使用先序遍历一个二叉树public static void preTraverseTree(Node root) {if (root == null) {System.out.print(0);}else{System.out.print(root.val);preTraverseTree(root.leftChild);preTraverseTree(root.rightChild);}}// 使用中序遍历一个二叉树public static void midTraverseTree(Node root) {if (root == null) {System.out.print(0);}else{midTraverseTree(root.leftChild);System.out.print(root.val);midTraverseTree(root.rightChild);}}// 层次遍历一棵二叉树public static void levelTraverse(Node root)  {if(root == null){return ;}LinkedList<Node> queue = new LinkedList<Node>();  Node current = null;queue.offer(root);//将根节点入队while(!queue.isEmpty()){current = queue.poll();//出队队头元素并访问System.out.print(current.val +"-->");if(current.leftChild != null){//如果当前节点的左节点不为空入队queue.offer(current.leftChild);}if(current.rightChild != null){//如果当前节点的右节点不为空,把右节点入队queue.offer(current.rightChild);}}}
}

二叉树的创建及遍历--java实现相关推荐

  1. 《LeetCode力扣练习》第94题 二叉树的中序遍历 Java

    <LeetCode力扣练习>第94题 二叉树的中序遍历 Java 一.资源 题目: 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 示例 1: 输入:root = [1,nul ...

  2. 二叉树的创建和遍历-C语言实现

    二叉树的创建和遍历-C语言实现 链式存储结构 struct BinaryTreeNode {//数据char data;//左子树BinaryTreeNode *leftChild;//右子树Bina ...

  3. c语言二叉树的生成,C语言实现二叉树的创建以及遍历(递归)

    C语言实现二叉树的创建以及遍历 #include typedef char ElemType; typedef struct BiTNode { ElemType data; struct BiTNo ...

  4. python二叉树的创建与遍历

    二叉树的基本概念: 一个结点的层次直观上来说就是其所在的行,其中根结点层次为1(第一行),其子结点层次为2(第二行),以此类推 二叉树的深度(高度):指的是二叉树中的最大叶子结点所在的层.二叉树的深度 ...

  5. C语言二叉树的创建与遍历

    二叉树的创建与遍历 文章目录 二叉树的创建与遍历 前言 一.二叉树的结构 二.二叉树创建和三种遍历 1. 2.前序遍历 3.中序遍历 4.后序遍历 5.测试代码 总结 前言 二叉树(binary tr ...

  6. [******] 树问题:普通二叉树的创建与遍历

    1. 二叉树的创建 String pre_str = "1,2,4,8,-1,-1,9,-1,-1,5,-1,-1,3,6,-1,10,-1,-1,7,-1,-1";//先序输入S ...

  7. 2.12_binary_tree_二叉树的创建和遍历

    创建二叉树 - 节点链接法 (很笨) class BiTreeNode(object):"""节点链接法"""def __init__(se ...

  8. 二叉树的创建、遍历(递归和非递归实现)、交换左右子数、求高度(c++实现)

    要求:以左右孩子表示法实现链式方式存储的二叉树(lson-rson),以菜单方式设计并完成功能任务:建立并存储树.输出前序遍历结果.输出中序遍历结果.输出后序遍历结果.交换左右子树.统计高度,其中对于 ...

  9. C语言——二叉树的创建与遍历

    二叉树 内容 实现二叉树的创建算法与中序列遍历算法.步骤如下: 将二叉树模拟成完全二叉树,从根结点开始对所有结点进行编号,编号从1开始,在运行过程中输入结点对应的编号和值,最后以编号i=0,结点值x= ...

  10. 二叉树的创建和遍历实现

    1 前言 提到**树(Tree)**结构,很容易联想到"大树",想到这是"一对多关系"特性的数据结构,其相关的名词.概念很多: 子树(SubTree).结点(N ...

最新文章

  1. 在linux和windows下自动备份数据库
  2. ADA4531 fA级静电放大器
  3. Jekyll主题收藏
  4. hadoop3.0新特性介绍
  5. bat截取字符串[转]
  6. 002redis常用的数据结构
  7. java多线程之生产者消费者问题
  8. 渗透测试攻击(一)Arp中间人攻击 伪装网关 截获 上网信息用户名密码
  9. Python – numpy.arange()
  10. C# Windows服务自动安装与注册
  11. 2021-10-18word2vec训练过程
  12. 大学计算机试题深圳大学,深圳大学期末考试试卷参考答案.doc
  13. Python + qrcode 实现文字转二维码
  14. mac php7 mysql.so_[安装] mac安装PHP7经历
  15. 耳朵后神经疼是怎么回事,耳朵引起的神经疼痛
  16. 18-基于双TMS320C6678 DSP的3U VPX的信号处理平台
  17. 阿飞学习mina框架
  18. 安卓培训价格!半路出家Android程序员看我轻松逆袭!深度好文
  19. 「面经分享」小米java岗二面面经,已拿offer
  20. 网络知识点之-APR协议

热门文章

  1. std string与线程安全_是std :: regex线程安全吗?
  2. ubuntu安装sasl失败 - 解决方法
  3. 2021-09-06单纯形计算方法(
  4. 601. 体育馆的人流量
  5. vofuria的开发(5)替换原vuforia的茶壶模型、改为自己想要的模型AR model
  6. android studio for android learning (十) android之activity的启动和关闭
  7. 【Codeforces】【Gym - 101234I】Tree Game【分类枚举】
  8. 【POJ 2785】【折半枚举】4 Values whose Sum is 0【暑期 No.6】
  9. IBC 2019 五篇文章阅读笔记
  10. java连接sftp的几种方式_Java使用SFTP和FTP两种连接服务器的方式实现对文件的上传下载...