`
大_圣
  • 浏览: 17654 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

树...

 
阅读更多

今天又复习了树的一些特点 ..

虽然在数据结构上有接触过.不过都是用c++实现的,现在用java来实现反而有点不大习惯.

只写了个通过数组来构造一棵树的几个方法.中序遍历树之后排列出来的数字都是有序的..

public TreeNode ArrayToTree(int[] array) {
		if (array == null) {
			throw new RuntimeException("传入的数组为空");
		}
		TreeNode root = new TreeNode(array[0]);
		int i = 0;
		for (i = 1; i < array.length; i++) {
			toTree(array[i], root);
		}
		return root;
	}

	/**
	 * 递归将每个结点插入树中
	 * 
	 * @param i结点中的数据
	 * @param t树的根结点
	 */
	public void toTree(int i, TreeNode t) {
		if (t != null) {
			// 左右子树都为空的时候则必定新建结点插入
			if (t.getLchild() == null && t.getRchild() == null) {
				if (i < (Integer) t.getData()) {
					t.setLchild(new TreeNode(i));
				} else {
					t.setRchild(new TreeNode(i));
				}
				// 左右子树只有一边为空时,当其满足条件则新建结点插入,否则递归判断
			} else if (t.getLchild() == null && t.getRchild() != null) {
				if (i < (Integer) t.getData()) {
					t.setLchild(new TreeNode(i));
				} else {
					toTree(i, t.getRchild());
				}
			} else if (t.getLchild() != null && t.getRchild() == null) {
				if (i >= (Integer) t.getData()) {
					t.setRchild(new TreeNode(i));
				} else {
					toTree(i, t.getLchild());
				}
				// 左右子树均存在的情况下,递归..
			} else if (i < (Integer) t.getData()) {
				toTree(i, t.getLchild());
			} else if (i >= (Integer) t.getData()) {
				toTree(i, t.getRchild());
			}
		}
	}

 

分享到:
评论

相关推荐

    移动端 日期,树...等控件的js插件

    移动端 日期,树...等控件的js插件 if (!window.jQuery) { var jQuery = Zepto; (function (a) { [ 'width', 'height' ].forEach(function (k) { a.fn[k] = function (n) { var t, c = document.body, h ...

    圣诞树源码圣诞树.zip

    圣诞树源码圣诞树.zip圣诞树源码圣诞树.zip圣诞树源码圣诞树.zip圣诞树源码圣诞树.zip圣诞树源码圣诞树.zip圣诞树源码圣诞树.zip圣诞树源码圣诞树.zip圣诞树源码圣诞树.zip圣诞树源码圣诞树.zip圣诞树源码圣诞树.zip...

    1_圣诞树.bat

    1_圣诞树.bat

    圣诞树源码C#圣诞树.zip

    圣诞树源码C#圣诞树.zip圣诞树源码C#圣诞树.zip圣诞树源码C#圣诞树.zip圣诞树源码C#圣诞树.zip圣诞树源码C#圣诞树.zip圣诞树源码C#圣诞树.zip圣诞树源码C#圣诞树.zip圣诞树源码C#圣诞树.zip圣诞树源码C#圣诞树.zip...

    圣诞树.exe

    圣诞树.exe

    圣诞树源码-一颗圣诞树.zip

    圣诞树源码—一颗圣诞树.zip圣诞树源码—一颗圣诞树.zip圣诞树源码—一颗圣诞树.zip圣诞树源码—一颗圣诞树.zip圣诞树源码—一颗圣诞树.zip圣诞树源码—一颗圣诞树.zip圣诞树源码—一颗圣诞树.zip圣诞树源码—一颗...

    圣诞树源码html+css圣诞树.zip

    圣诞树源码html+css圣诞树.zip圣诞树源码html+css圣诞树.zip圣诞树源码html+css圣诞树.zip圣诞树源码html+css圣诞树.zip圣诞树源码html+css圣诞树.zip圣诞树源码html+css圣诞树.zip圣诞树源码html+css圣诞树.zip圣诞...

    随机樱花树.py!!!!!!!

    随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机樱花树.py随机...

    圣诞树源码Html5+CSS3+JS代码实现动态圣诞树.zip

    圣诞树源码Html5+CSS3+JS代码实现动态圣诞树.zip圣诞树源码Html5+CSS3+JS代码实现动态圣诞树.zip圣诞树源码Html5+CSS3+JS代码实现动态圣诞树.zip圣诞树源码Html5+CSS3+JS代码实现动态圣诞树.zip圣诞树源码...

    圣诞树.html

    圣诞树.html

    神经网络+支持向量机+深度算法+决策树.zip

    神经网络+支持向量机+深度算法+决策树.zip神经网络+支持向量机+深度算法+决策树.zip神经网络+支持向量机+深度算法+决策树.zip神经网络+支持向量机+深度算法+决策树.zip神经网络+支持向量机+深度算法+决策树.zip神经...

    机器学习入门与实战(scikit-learn和Keras)课件—决策树.pdf

    机器学习入门与实战(scikit-learn和Keras)课件—决策树.pdf机器学习入门与实战(scikit-learn和Keras)课件—决策树.pdf机器学习入门与实战(scikit-learn和Keras)课件—决策树.pdf机器学习入门与实战(scikit-learn和...

    圣诞树源码圣诞树源码.zip

    圣诞树源码圣诞树源码.zip圣诞树源码圣诞树源码.zip圣诞树源码圣诞树源码.zip圣诞树源码圣诞树源码.zip圣诞树源码圣诞树源码.zip圣诞树源码圣诞树源码.zip圣诞树源码圣诞树源码.zip圣诞树源码圣诞树源码.zip圣诞树...

    kuangbin acm模板超级好用

    1 字符串处理 5 1.1 KMP . . . . ....3.3 树链剖分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.3.1 点权 . . . . . . . . . . . . . . . . . . . . . . ...

    事故树.ftx(用DW打开即可)

    事故树.ftx(用DW打开即可)

    入门级别的房价预测机器学习实验,使用了非二叉决策回归树.zip

    使用了非二叉决策回归树.zip入门级别的房价预测机器学习实验,使用了非二叉决策回归树.zip入门级别的房价预测机器学习实验,使用了非二叉决策回归树.zip入门级别的房价预测机器学习实验,使用了非二叉决策回归树.zip...

Global site tag (gtag.js) - Google Analytics