什么是Java顺序二叉树
本篇内容主要讲解“什么是Java顺序二叉树”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是Java顺序二叉树”吧!
创新互联是一家专注于成都做网站、成都网站设计与策划设计,夏邑网站建设哪家好?创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:夏邑等地区。夏邑做网站价格咨询:18980820575
基本概念
从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树可以转换成数组。如下图所示:
顺序存储二叉树的特点:
顺序存储通常只考虑完全二叉树;
第n个元素的左子节点为 2 * n+1;
第n个元素的右子节点为 2 * n+2;
第n个元素的父节点为 (n-1)/2;
n 表示二叉树中的第几个元素(按0开始编号如上图所示);
需求
要求给定一个数组{1,2,3,4,5,6,7},要求以二叉树前序遍历的方式进行遍历,前序遍历的结果应当为1,2,4,5,3,6,7,
附加完成中序遍历和后序遍历。
代码案例
package com.xie.tree; /** * @author: xiexiaofei * @date: 2020-02-09 20:04 * @description: */ public class ArrBinaryTreeDemo { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6, 7}; ArrBinaryTree arrBinaryTree = new ArrBinaryTree(arr); System.out.println("顺序存储二叉树的前序遍历数组"); arrBinaryTree.preOrder(0); System.out.println(); System.out.println("顺序存储二叉树的中序遍历数组"); arrBinaryTree.infixOrder(0); System.out.println(); System.out.println("顺序存储二叉树的后序遍历数组"); arrBinaryTree.postOrder(0); System.out.println(); /** * 顺序存储二叉树的前序遍历数组 * 1 2 4 5 3 6 7 * 顺序存储二叉树的中序遍历数组 * 2 4 5 1 3 6 7 * 顺序存储二叉树的后序遍历数组 * 2 4 5 3 6 7 1 */ } } //实现顺序存储二叉树遍历 class ArrBinaryTree { private int[] arr;//存储数据节点的数组 public ArrBinaryTree(int[] arr) { this.arr = arr; } /** * 编写一个方法,完成顺序存储二叉树的前序遍历。 * * @param index 数组的下标 */ public void preOrder(int index) { if (arr == null || arr.length == 0) { System.out.println("数组为空,不能按照二叉树的前序遍历"); } //输出当前的元素 System.out.print(arr[index] + " "); //向左递归遍历 if ((2 * index + 1) < arr.length) { preOrder(2 * index + 1); } //向右递归 if ((2 * index + 2) < arr.length) { preOrder(2 * index + 2); } } /** * 编写一个方法,完成顺序存储二叉树的中序遍历。 * * @param index */ public void infixOrder(int index) { if (arr == null || arr.length == 0) { System.out.println("数组为空,不能按照二叉树的前序遍历"); } //向左递归遍历 if ((2 * index + 1) < arr.length) { preOrder(2 * index + 1); } //输出当前的元素 System.out.print(arr[index] + " "); //向右递归 if ((2 * index + 2) < arr.length) { preOrder(2 * index + 2); } } /** * 编写一个方法,完成顺序存储二叉树的后序遍历。 * * @param index */ public void postOrder(int index) { if (arr == null || arr.length == 0) { System.out.println("数组为空,不能按照二叉树的前序遍历"); } //向左递归遍历 if ((2 * index + 1) < arr.length) { preOrder(2 * index + 1); } //向右递归 if ((2 * index + 2) < arr.length) { preOrder(2 * index + 2); } //输出当前的元素 System.out.print(arr[index] + " "); } }
到此,相信大家对“什么是Java顺序二叉树”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
标题名称:什么是Java顺序二叉树
文章URL:http://azwzsj.com/article/pojshi.html