二叉树的相关操作(递归)
来源:互联网 发布:做代码的软件 编辑:程序博客网 时间:2024/06/02 01:37
二叉树节点定义
public class Node {int data;Node leftChild;Node rightChild;}
一些二叉树的操作
import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import java.util.Stack;public class Test {public static void main(String[] args) {Node root=null;root=create(root);System.out.println("============");preOrder(root);System.out.println("depth:"+depth(root));System.out.println("leaves:"+leaves(root));//exchange(root);preOrder(root);widthOrder(root);}//创建二叉树@SuppressWarnings("resource")public static Node create(Node root){Scanner scanner=new Scanner(System.in);int i;i=scanner.nextInt();if(i==-1){root=null;return null; }if(root==null){root=new Node();root.data=i;}root.leftChild=create(root.leftChild);root.rightChild=create(root.rightChild);return root;}//前序遍历二叉树public static void preOrder(Node root){if(root!=null){System.out.print(root.data+" ");preOrder(root.leftChild);preOrder(root.rightChild);}}//求二叉树深度public static int depth(Node root){if(root==null)return 0;int a=depth(root.leftChild);int b=depth(root.rightChild);return a>b?a+1:b+1;}//求二叉树叶子数public static int leaves(Node root){if(root==null)return 0;if(root.leftChild==null&&root.rightChild==null)return 1;return leaves(root.leftChild)+leaves(root.rightChild);}//翻转二叉树 public static void exchange(Node root){ if(root==null) return; Node temp=root.leftChild; root.leftChild=root.rightChild; root.rightChild=temp; exchange(root.leftChild); exchange(root.rightChild); } //层次遍历二叉树 public static void widthOrder(Node root){ Queue<Node> queue=new LinkedList<Node>(); if(root==null) return; queue.add(root); while(queue.size()>0){ Node temp=queue.poll(); System.out.print(temp.data+" "); if(temp.leftChild!=null) queue.add(temp.leftChild); if(temp.rightChild!=null) queue.add(temp.rightChild); } }
0 0
- 二叉树的相关操作(递归)
- 二叉树的基本操作(递归)
- 二叉树的相关操作(一)
- 二叉树的相关操作(二)
- 二叉树的相关递归算法
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的相关操作
- 二叉树的建立与输出以及其他一些相关操作(递归算法实现) C语言
- ios7的uitoolbar在uinavigationbar上会有个底色,去除底色的方法
- javascript的一些简单使用
- Android代码规范
- oracle 相关sql杂
- Apache80指向tomcat8080
- 二叉树的相关操作(递归)
- 模板间调用成员函数指针
- 链表逆置
- BootStrap 教程 之 特点与组成(01)
- JVM运行机制
- Android app 中响应hardkey press event
- 分区表查询带分区条件,没有分区消除
- perl引用 笔记
- Hermes与开源的Solr、ElasticSearch的不同