李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
数据结构和算法学习--顺序存储二叉树
Leefs
2020-02-11 PM
1821℃
0条
# 数据结构和算法学习--顺序存储二叉树 ### 一、基本说明 从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组,看下面的示意图。 ![30.顺序存储二叉树01.png][1] **要求:** (1)上图的二叉树的结点,要求以数组的方式来存放arr:[1,2,3,4,5,6] (2)要求在遍历数组arr时,仍然可以以前序遍历,中序遍历和后序遍历的方式完成结点的遍历 **顺序存储二叉树的特点:** (1)顺序二叉树通常只考虑完全二叉树 (2)第n个元素的左子结点为2*n+1 (3)第n个元素的右子节点为2*n+2 (4)第n个元素的父节点为(n-1)/2 (5)n:表示二叉树中的第几个元素(按0开始编号如图所示) ### 二、顺序存储二叉树遍历 需求:给你一个数组{1,2,3,4,5,6,7},要求以二叉树前序遍历的方式进行遍历,前序遍历的结果应当为1,2,4,5,3,6,7 ```java public class ArrBinaryTreeDemo { public static void main(String[] args) { int[] arr={1,2,3,4,5,6,7}; //创建一个 ArrBinaryTree ArrBinaryTree arrBinaryTree = new ArrBinaryTree(arr); arrBinaryTree.preOrder(); } } //编写一个ArrayBinaryTree,实现顺序存储二叉树遍历 class ArrBinaryTree{ private int[] arr;//存储数据结点的数组 public ArrBinaryTree(int[] arr){ this.arr=arr; } //重载preOrder public void preOrder(){ this.preOrder(0); } //编写一个方法,完成顺序存储二叉树的前序遍历 public void preOrder(int index){ //如果数组为空,或者arr.length=0 if(arr == null || arr.length == 0){ System.out.println("数组为空,不能按照二叉树的前序遍历"); } //输出当前这个元素 System.out.print(arr[index]); //向左递归遍历 if((index*2+1)
标签:
数据结构和算法
,
二叉树
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://www.lilinchao.com/archives/586.html
上一篇
数据结构和算法学习--二叉树查找指定节点
下一篇
数据结构和算法学习--线索二叉树
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
并发线程
Linux
国产数据库改造
哈希表
SpringCloud
散列
栈
Azkaban
LeetCode刷题
Java编程思想
Spark RDD
DataWarehouse
Kafka
Stream流
数据结构
FastDFS
数据结构和算法
数学
队列
Kibana
Flink
微服务
Spark Streaming
Hbase
Zookeeper
递归
Quartz
Elasticsearch
Java
Git
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞