二叉树遍历算法

Posted 哲思小辉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树遍历算法相关的知识,希望对你有一定的参考价值。


二叉树遍历算法源码:

package com.tree;

 

import java.util.Scanner;

 

public class TwoTree {

    int data;

TwoTree left;

  TwoTree right;

public TwoTree(int data){

this.data = data;

left = null;

right = null;

}

public void add(TwoTree root,int data){

if(data>root.data){

if(root.right==null){

root.right = new TwoTree(data);

}else{

this.add(root.right, data);

}

}else{

if(root.left==null){

root.left = new TwoTree(data);

}else{

this.add(root.left, data);

}

}

}

public static void fristleft(TwoTree root){ //先序遍历

  if(root!=null){

   System.out.print(root.data+" ");

   fristleft(root.left);

   fristleft(root.right);

  }

}

 

public static void fristroot(TwoTree root){ //中序遍历

 

 

  if(root!=null){

  fristroot(root.left);

   System.out.print(root.data+" ");

   fristroot(root.right);

  }

}

 

public static void fristright(TwoTree root){ //后序遍历

 

 

  if(root!=null){

  fristright(root.left);

  fristright(root.right);

   System.out.print(root.data+" ");

  }

}

public static int  NodeNumber(TwoTree root){//叶子节点的个数

if(root==null){

return 0;

}

if(root.left==null&&root.right==null){

return 1;

}

return NodeNumber(root.left)+NodeNumber(root.right);

  }

 

public static void main(String[] args) {

// TODO 自动生成的方法存根

Scanner input = new Scanner(System.in);

System.out.println("请输入总的节点的个数:");

int len = input.nextInt();

System.out.println("请输入节点数据");

TwoTree root = new TwoTree(input.nextInt());   //创建二叉树

  for(int i=1;i<len;i++){

   root.add(root, input.nextInt());       //向二叉树中插入数据

  }

  System.out.println("先序遍历:");

  fristleft(root);

  System.out.println(" 中序遍历:");

  fristroot(root);

  System.out.println(" 后序遍历:");

  fristright(root);

  System.out.println(" 叶子节点的个数:"+ NodeNumber(root)+"个");

  System.exit(1);

}

}

结果:

二叉树遍历算法


二叉树遍历算法



以上是关于二叉树遍历算法的主要内容,如果未能解决你的问题,请参考以下文章

Python算法系列—深度优先遍历算法

二叉树遍历算法总结

二叉树先序非递归遍历C语言算法

建立二叉树,层序、先序遍历

算法_二叉树遍历篇

题目 6 建立二叉树,层序、先序遍历(用非递归的方法)