博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java创建二叉树并递归遍历二叉树
阅读量:6241 次
发布时间:2019-06-22

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

二叉树类代码:

package binarytree;import linkqueue.LinkQueue;public class BinaryTree {	class Node	{		public Object data;		public Node lchild;		public Node rchild;				public Node(Object data)		{			this.data = data;			this.lchild = null;			this.rchild = null;		}	}	//根节点	private Node root = null;	private Node node = null;	/**	 * 创建树	 * 	 * 以完全二叉树的格式来创建(子树不存在的用0填充),	 * 对完全二叉树中每一个节点从0开始进行编号,	 * 那么第i个节点的左孩子的编号为2*i+1,右孩子为2*i+2。	 * 	 * */	void createTree(String strtree)	{		LinkQueue lQueue = new LinkQueue();		lQueue.initQueue();		/**		 * 完全二叉树中第i层的结点的个数最多为第1到i-1层上所有节点的个数和		 * 所以父节点的个数最多为N-1个,N表示节点个数		 * */		for(int parentIndex =0; parentIndex

测试代码(以数据结构中表达式a+b*(c-d)-e/f为例):

package binarytree;public class BinaryTreeMain {	public static void main(String[] args) {		BinaryTree binaryTree = new BinaryTree();				String strtree="- + / a * e f 0 0 b - 0 0 0 0 0 0 0 0 0 0 c d";//0表示没有值的位置		binaryTree.createTree(strtree);				binaryTree.print();	}}

 运行结果:

转载地址:http://zccia.baihongyu.com/

你可能感兴趣的文章
ASP.NET MVC 之自定义HtmlHelper
查看>>
声明顺序
查看>>
memcpy内存重叠的解决
查看>>
保存和恢复activity的状态数据[转]
查看>>
JS中call、apply的用法说明
查看>>
C#中对于Enum类型的遍历
查看>>
使用tomcat启动dubbo项目
查看>>
crontab + shell脚本实现文件重命名
查看>>
谈谈-ConstraintLayout完全解析
查看>>
fluent-ffmpeg 常用函数
查看>>
Robot Framework(十五) 扩展RobotFramework框架——远程库接口
查看>>
Eclipse中没有javax.servlet和javax.servlet.http包的处理办法
查看>>
汽车加工厂
查看>>
localStorage 和 sessionStorage 的用法
查看>>
day23-python操作数据库三
查看>>
第二次冲刺——第3天
查看>>
SpringMVC+Hibernate+Junit4+json基本框架近乎0配置
查看>>
Pro Android学习笔记(一三七):Home Screen Widgets(3):配置Activity
查看>>
Hadoop学习笔记(九)HDFS架构分析
查看>>
DB2数据库常用基本操作命令
查看>>