`

数据结构中关于树方面的一些小知识

    博客分类:
  • java
阅读更多
package 树;

public class 自己写的构造树 {
	private int data;                            //树的结构定义 一个数
	private 自己写的构造树 left;                                 //左子
	private 自己写的构造树 right;                              //右子
	
	public 自己写的构造树(int data){                  //树的节点的构造函数
		this.data= data;
		this.left= null;
		this.right= null;
	}
	public static 自己写的构造树 createtree(int data[]){   //构造树的函数
		自己写的构造树 root=null;                            //定义两个变量 root 和temp
		自己写的构造树 temp=null;
		for(int i=0;i<data.length;i++){                   //for为把每个data生成的节点添加到树结构中
			if(root == null){                                     //初始树为空时
				root= temp = new 自己写的构造树(data[i]);       //构造第一个节点
			}else {                                                  //否则寻找要安放的位置
				temp = root;
				while(temp.data!=data[i]){
					if(data[i]<=temp.data){
						if(temp.left!=null){
							temp = temp.left;
						}else{
							temp.left = new 自己写的构造树(data[i]);
						}
					}else{
						if(temp.right!=null){
							temp = temp.right;
						}else{
							temp.right = new 自己写的构造树(data[i]);
						}
					}
				}
			}
		}
		return root;
	}
	public static  void preorder(自己写的构造树 root){
		if(root!=null){
			System.out.print(root.data+" ");
			preorder(root.left);
			preorder(root.right);
		}
	}
	public static  void inorder(自己写的构造树 root){
		if(root!=null){
			inorder(root.left);
			System.out.print(root.data+" ");
			inorder(root.right);
		}
	}
	public static  void postorder(自己写的构造树 root){
		if(root!=null){
			postorder(root.left);
			postorder(root.right);
			System.out.print(root.data+" ");
		}
	}
	
	public static int treeDepth(自己写的构造树 root){   //求树的深度  递归算法
		int depth1 ,depth2;
		int temp;
		if(root ==null){
			return 0;
		}
		depth1 = treeDepth(root.left);
		depth2 = treeDepth(root.right);
		if(depth1>=depth2){
			temp = depth1+1;
		}else {
			temp = depth2+1;
		}
		return temp;
	}
	
	
	public static void main(String args[]){
		int[] in = { 44, 22, 46, 14, 33, 55, 77,88,100 };
		自己写的构造树 tree = createtree(in);
		   System.out.print("前序遍历:");
		   preorder(tree);
		   System.out.print("\n中序遍历:");
		   inorder(tree);
		   System.out.print("\n后序遍历:");
		   postorder(tree);
		   System.out.print("\n二叉树深度为:"+treeDepth(tree));
	}
}
//此小程序有一个小的缺点,请读者自己解决哈~^^~
分享到:
评论

相关推荐

    数据结构-树的一些练习题

    数据结构中的树是一种非常重要的抽象数据类型,它在计算机科学中有着广泛的应用,特别是在算法设计、数据存储和搜索等方面。以下是对给定题目中涉及的知识点的详细解释: 1. **线索化二叉树**:线索化二叉树是在...

    数据结构课程设计——最小生成树

    数据结构课程设计是计算机科学与技术专业的重要实践环节,它要求学生将理论知识应用到实际问题中,以提升解决问题的能力。本次课程设计的主题是“最小生成树”,这是图论领域的一个经典问题,对于网络优化、资源分配...

    数据结构课本习题 树 代码 源代码

    总结,这份资源包含了关于数据结构中“树”的核心知识点,如树的遍历、线索二叉树和哈弗曼树的构建及应用。同时,它还覆盖了其他基础数据结构,如线性表、串、数组、广义表、栈和队列,为学习者提供了全面的理论与...

    数据结构实验报告树

    根据给定的文件信息,我们...以上知识点全面覆盖了数据结构实验报告中关于树的理论基础、实验设计、算法实现以及调试技巧等方面,为学习者提供了深入理解树形数据结构的机会,同时也为实际编程应用打下了坚实的基础。

    数据结构之树 MFC 可视化

    总之,“数据结构之树 MFC 可视化”涉及了数据结构、C++编程、MFC框架以及图形用户界面设计等多个方面的知识。通过这个主题的学习和实践,不仅可以提升对数据结构的理解,还能增强在Windows环境下开发应用程序的能力...

    数据结构实验报告9-图-Prim算法求最小生成树-实验内容与要求.docx

    根据给定的文件信息,本篇内容将围绕“数据结构实验报告9-图-Prim算法求最小生成树”展开,具体涉及的知识点包括Prim算法的基本原理及其应用、图的邻接矩阵存储结构的设计与实现、最小生成树的概念及求解过程、以及...

    有关于数据结构方面的一些学习资料

    严蔚敏教授的《数据结构》是这方面的经典教材,提供了深入的理论知识和实际实现。以下是本压缩包中包含的相关知识点: 1. **数据结构的概念**:数据结构不仅仅是关于数据的存储,更关乎数据之间的关系和对这些关系...

    java 树的数据结构 红黑树的实现 学习路线

    总之,学习Java中的树数据结构和红黑树的实现,不仅需要理解理论知识,还需要通过编写代码进行实践,这样才能真正掌握并应用到实际项目中。同时,跟随一个系统的学习路线,可以有效地提高学习效率,确保知识的全面性...

    B+树数据结构详解

    B+树是一种自平衡的树数据结构,它维护了数据的排序,并允许搜索、顺序访问、插入和删除在对数时间内完成。由于其在数据库和文件系统中的应用,它是一种在磁盘存储器上运行非常高效的结构。B+树是B树的一个变种,在B...

    最小生成树 算法 代码 数据结构

    在本压缩包中,"最小生成树 算法 代码 数据结构"可能包含的是用VS2008编写的关于最小生成树算法的实现代码和相关数据结构的解释。 首先,我们要理解什么是最小生成树。在无向加权图中,一个生成树是一棵包括所有...

    二叉树与树、森林的转换(数据结构课设)

    在数据结构课程设计中,"二叉树与树、森林的转换"这一课题要求学生理解和实现上述理论知识。总体设计阶段,需要分析问题,明确题目要求,理解如何将二叉树结构转化为普通树或森林,并设计相应的数据结构和算法。这...

    数据结构课程设计——B树图书管理.zip

    数据结构是计算机科学中的核心课程,它探讨了如何有效地存储和检索...设计一个B树图书管理系统,可以涉及数据结构、数据库原理、文件系统等多个方面的知识,对于计算机专业的学生来说,是一个非常有价值的实践项目。

    浙江大学陈越数据结构课件

    4. **树形结构**:二叉树、平衡树(如AVL树和红黑树)以及搜索树(如二叉查找树和B树)是重要的数据结构,它们在查找、排序和组织层次数据方面非常有用。 5. **图结构**:图可以表示复杂的网络关系,如社交网络、...

    数据结构最全知识点

    数据结构是计算机科学中关于数据组织、管理及处理的理论和技术,它是程序设计、计算机硬件和软件工程的基础。提到“数据结构最全知识点”,就必然涉及多个领域,包括线性结构、树结构、图结构等复杂数据结构,以及...

    数据结构专题知识

    6. **综合应用能力培养**:能够在具体问题场景中灵活运用数据结构和算法知识。 #### 四、数据结构基础知识 1. **数据结构概述**: - 定义:数据结构是数据对象及其关系的集合。 - 目标:有效地组织和存储数据,...

    数据结构最小生成树实习报告

    在这个实习报告中,我们将重点关注一个特定的数据结构问题——最小生成树。最小生成树(Minimum Spanning Tree, MST)是图论中的一个重要概念,特别是在网络设计、优化问题和算法分析中有着广泛的应用。 最小生成树是...

    西安理工大学863数据结构真题 -西安理工大学863数据结构真题需要的滴滴我,都是我去年备考时的真题资料,还有复试资料哦~

    西安理工大学863数据结构真题是指该大学每年考研的数据结构考试真题,这些真题涵盖了数据结构的各个方面,包括数组、链表、栈、队列、树、图等多种数据结构类型。 三、数据结构基本概念 1. 数组(Array):是一种...

    数据结构与算法大全 由浅入深介绍数据结构的基础知识

    ### 数据结构与算法大全:由浅入深介绍数据结构的基础知识 #### 一、数据结构的概念 **数据结构**是在整个计算机科学与技术领域中广泛使用的术语,它用来描述数据的内部构成及其组织形式。数据结构包括两个方面:*...

    C++数据结构与程序设计

    通过解决一些经典和实际问题,来帮助读者理解数据结构和算法在实际编程中的应用场景。这不仅能加深对理论知识的理解,同时也能培养读者解决实际问题的能力。 此外,为了便于读者学习和巩固知识,本书应该会包含大量...

    数据结构1800试题.pdf

    通过这份试题集,学习者可以深入理解数据结构的各个方面,巩固理论知识,提升编程技能,尤其对于准备考研或期末考试的学生来说,是宝贵的复习资源。记得在完成练习后,及时核对答案,以检验自己的理解和掌握程度。...

Global site tag (gtag.js) - Google Analytics