zoukankan      html  css  js  c++  java
  • 树的深度优先遍历,广度优先遍历

    package com.lkr.dataStructure;

    //import javax.swing.tree.TreeNode;
    import java.util.ArrayDeque;
    //import com.lkr.dataStructure.TreeNode;

    public class TreeBianli {

    public static void main(String[] args){
    TreeNode root = new TreeNode(1);
    TreeNode secondNode = new TreeNode(2);
    TreeNode thirdNode = new TreeNode(3);
    TreeNode forthNode = new TreeNode(4);
    TreeNode fifthNode = new TreeNode(5);
    TreeNode sixthNode = new TreeNode(6);
    TreeNode seventhNode = new TreeNode(7);
    root.right = secondNode;
    root.left = thirdNode;
    secondNode.right = forthNode;
    secondNode.left = fifthNode;
    thirdNode.right = sixthNode;
    sixthNode.left = seventhNode;

    System.out.println("深度优先遍历结果: ");
    new TreeBianli().depthOrderTraversal(root);

    System.out.println("广度优先遍历结果: ");
    new TreeBianli().levelOrderTraversal(root);

    }
    //深度优先算法采用栈来实现非递归算法
    public void depthOrderTraversal(TreeNode root){
    if(root==null){
    System.out.println("empty tree");
    return;
    }
    ArrayDeque<TreeNode> stack = new ArrayDeque<TreeNode>();
    stack.push(root);
    while (stack.isEmpty()==false){
    TreeNode node = stack.pop();
    System.out.print(node.value+" ");
    if(node.right != null){
    stack.push(node.right);
    }
    if(node.left != null){
    stack.push(node.left);
    }
    }
    System.out.print(" ");
    }

    //广度优先算法利用队列来实现非递归算法
    public void levelOrderTraversal(TreeNode root){
    if(null==root){
    System.out.println("empth tree");
    return;
    }
    ArrayDeque<TreeNode> queue = new ArrayDeque<>();
    queue.add(root);
    while(queue.isEmpty()== false){
    TreeNode node = queue.remove();
    System.out.print(node.value + " ");
    if(null != node.left){
    queue.add(node.left);
    }
    if(null != node.right){
    queue.add(node.right);
    }
    }
    System.out.print(" ");
    }
    }
  • 相关阅读:
    mysql无法启动-You may have to recover from a backup
    mysql导出索引sql 导出索引创建语句
    Padavan路由器设置桥接多路由器同WIFI方法
    挖的坑还是要填的
    I'm Back
    40行加速头文件
    一些XJOI博客的密码
    p进制线性基填坑
    Dirichelet卷积的k次方根
    用pb_ds写一颗线段树
  • 原文地址:https://www.cnblogs.com/turningli/p/10393675.html
Copyright © 2011-2022 走看看