博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树的深度优先遍历和广度优先遍历
阅读量:6085 次
发布时间:2019-06-20

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

1 import java.util.ArrayDeque;  2   3 public class BinaryTree {  4     static class TreeNode{  5         int value;  6         TreeNode left;  7         TreeNode right;  8   9         public TreeNode(int value){ 10             this.value=value; 11         } 12     } 13  14     TreeNode root; 15  16     public BinaryTree(int[] array){ 17         root=makeBinaryTreeByArray(array,1); 18     } 19  20     /** 21      * 采用递归的方式创建一颗二叉树 22      * 传入的是二叉树的数组表示法 23      * 构造后是二叉树的二叉链表表示法 24      */ 25     public static TreeNode makeBinaryTreeByArray(int[] array,int index){ 26         if(index
stack=new ArrayDeque
(); 50 stack.push(root); 51 while(stack.isEmpty()==false){ 52 TreeNode node=stack.pop(); 53 System.out.print(node.value+" "); 54 if(node.right!=null){ 55 stack.push(node.right); 56 } 57 if(node.left!=null){ 58 stack.push(node.left); 59 } 60 } 61 System.out.print("\n"); 62 } 63 64 /** 65 * 广度优先遍历 66 * 采用非递归实现 67 * 需要辅助数据结构:队列 68 */ 69 public void levelOrderTraversal(){ 70 if(root==null){ 71 System.out.println("empty tree"); 72 return; 73 } 74 ArrayDeque
queue=new ArrayDeque
(); 75 queue.add(root); 76 while(queue.isEmpty()==false){ 77 TreeNode node=queue.remove(); 78 System.out.print(node.value+" "); 79 if(node.left!=null){ 80 queue.add(node.left); 81 } 82 if(node.right!=null){ 83 queue.add(node.right); 84 } 85 } 86 System.out.print("\n"); 87 } 88 89 /** 90 * 13 91 * / \ 92 * 65 5 93 * / \ \ 94 * 97 25 37 95 * / /\ / 96 * 22 4 28 32 97 */ 98 public static void main(String[] args) { 99 int[] arr={0,13,65,5,97,25,0,37,22,0,4,28,0,0,32,0};100 BinaryTree tree=new BinaryTree(arr);101 tree.depthOrderTraversal();102 tree.levelOrderTraversal();103 }104 }

 

 

转载于:https://www.cnblogs.com/bug-butterfly/p/4038823.html

你可能感兴趣的文章
java实现大数相加问题
查看>>
C#百万数据查询超时问题
查看>>
2016第10周五
查看>>
使用gson-1.6.jar解析json
查看>>
AC Milan VS Juventus(模拟)
查看>>
CentOS两台服务器利用scp拷贝文件
查看>>
SQL DatePart函数使用
查看>>
asp.net页面后退,重复弹出上一页对话框处理办法
查看>>
docker 学习
查看>>
python twilio 短信群发 知识留存
查看>>
爆款小程序是如何诞生的?
查看>>
C#中结构体与类的区别
查看>>
phpstorm配置php脚本执行
查看>>
2018 .NET开发者调查报告: .NET Core 是怎么样的状态
查看>>
Spring Boot Cache配置 序列化成JSON字符串
查看>>
mysql group by using filesort优化
查看>>
自定义cnblogs样式小结
查看>>
AM335x移植linux内核_转
查看>>
Nginx 介绍
查看>>
Bat相关的项目应用
查看>>