`
Java.天道2011
  • 浏览: 9455 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

数据类型之二叉树小结

阅读更多
之前学习了数据类型中的链表,在数据类型中还有一种树形结构,而二叉树即是一种数。二叉树跟双向链表有些相似,二叉树也有父结点和子结点,只是子结点有两个,一个是左结点,一个是右结点。
public class TreeNode<E> {
	//左结点、右结点、父结点
	private TreeNode<E> left;
	private TreeNode<E> right;
	private TreeNode<E> parent;
	private E data;
	//结点的构造器,存储入数据
	public TreeNode(E e){
		this.setData(e);
	}
	//设置父结点的方法
	public void setParent(TreeNode<E> parent) {
		this.parent = parent;
	}
	//得到父结点的方法
	public TreeNode<E> getParent() {
		return parent;
	}
	//设置左结点的方法
	public void setLeft(TreeNode<E> left) {
		this.left = left;
	}
	//得到左结点的方法
	public TreeNode<E> getLeft() {
		return left;
	}
	//设置右结点的方法
	public void setRight(TreeNode<E> right) {
		this.right = right;
	}
	//得到右结点的方法
	public TreeNode<E> getRight() {
		return right;
	}
	//存储入数据的方法
	public void setData(E data) {
		this.data = data;
	}
	//得到数据的方法
	public E getData() {
		return data;
	}
}

下面我们测试一下二叉树:
public class TreeNodeTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		paintTree(CreatTree());
	}
	/**
	 * 建树
	 * @return:树的根节点
	 */
	public static TreeNode<String> CreatTree(){
		TreeNode<String> root = new TreeNode<String>("媒");
		root.setParent(root);
		TreeNode<String> left = new TreeNode<String>("杰");
		TreeNode<String> right = new TreeNode<String>("李");
		
		root.setLeft(left);
		root.setRight(right);
		left.setParent(root);
		right.setParent(root);
		
		TreeNode<String> left_left = new TreeNode<String>("蓝");
		TreeNode<String> left_right = new TreeNode<String>("数");
		
		left.setLeft(left_left);
		left.setRight(left_right);
		left_left.setParent(left);
		left_right.setParent(left);
		
		TreeNode<String> right_left = new TreeNode<String>("班");
		TreeNode<String> right_right = new TreeNode<String>("勇");
		
		right.setLeft(right_left);
		right.setRight(right_right);
		right_left.setParent(right);
		right_right.setParent(right);
		
		return root;
	}
	/**
	 * 打印数中的数据
	 * @param root:树的根节点
	 */
	public static void paintTree(TreeNode<String> root){
		if(root!=null){
		String s = root.getData();
		System.out.println("数据是:"+s);
		TreeNode<String> node1 = root.getLeft();
		TreeNode<String> node2 = root.getRight();
		paintTree(node1);
		paintTree(node2);
		}
	}
}

这样一个简单的二叉树就完成了。
分享到:
评论

相关推荐

    数据结构(C语言版) 第五章 树与二叉树 知识梳理 + 作业习题详解1

    数据结构中的树是一种重要的抽象数据类型,它模拟了自然界中许多结构的层次关系。在C语言版的数据结构中,树的表示和操作是关键部分。本文主要梳理了树与二叉树的相关知识点,并包含了相关作业习题的详解。 首先,...

    数据结构C语言版_二叉树的顺序存储表示和实现

    小结 通过上述分析,我们可以看到二叉树的顺序存储表示在C语言中的实现细节。这种方式不仅节省了空间,而且在处理一些特定问题时,如寻找父节点或子节点,可以极大地提高效率。然而,它也存在一定的局限性,比如...

    c语言数据结构的小结

    "C语言数据结构的小结"是一个针对初学者的指南,旨在帮助他们理解并掌握C语言中的数据结构概念。数据结构是计算机科学的核心组成部分,它涉及到如何有效地组织和管理数据,以便于高效地访问和操作。 首先,我们要...

    二叉树数据结构源程序

    小结 这段代码提供了一个基本的框架来处理二叉树的操作,包括创建、遍历、计算节点数量、计算叶子节点数量和计算树的深度等功能。通过对这些函数的理解和使用,可以帮助我们更好地掌握二叉树的相关概念和操作方法。...

    数据结构二叉树习题附标准答案.pdf

    数据结构中的二叉树是一种重要的抽象数据类型,它在计算机科学中被广泛应用,尤其是在算法设计、数据存储和问题解决等领域。二叉树是由节点(也称为结点)构成的,每个节点最多有两个子节点,分别被称为左子节点和右...

    二叉树的基本操作实现及其应用

    6. **求二叉树中所有结点数**:`BinTreeCount(BitTree BT)` 函数计算二叉树中的节点总数。 在题目二中,涉及到一个与二叉搜索树(BST)相关的应用问题。BST 是一种特殊的二叉树,其中每个节点的左子树包含所有小于...

    数据结构实验报告-二叉树4.doc

    实验小结强调了书本和PPT是学习的重要资源,并提醒在未来的编程中注意类型定义的一致性。 总的来说,这个实验报告覆盖了二叉树的基本概念、创建、遍历和操作,通过实际编码加深了对二叉树的理解。在学习和实践中,...

    数据结构实验报告-二叉树24.doc

    七、实验小结 * 遇到的问题:对于树的递归思想不是很明白,需要通过画图分析和思考来明白。 * 解决方法:通过画图分析和思考,明白了树的递归思想。 * 实验体会和收获:只要愿意思考,就会有收获,别为懒惰找借口。

    二叉排序树与平衡二叉树的实现

    使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。 使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。 3) 使...

    【数据结构课件】第六章 树与二叉树

    树是一种抽象的数据类型,它模拟了自然界中的树形结构,被广泛应用于计算机科学的各个领域,例如文件系统的目录结构、XML文档的解析等。 #### 二、树的定义与基本术语 ##### 1. 树的定义 树是由一个或多个节点组成...

    数据结构实验报告(顺序存储、链式存储、二叉树,共三份).docx

    - **实验小结**:讨论二叉树的不同形态(满二叉树、完全二叉树、平衡二叉树等),以及它们在不同场景下的应用。 通过这三个实验,学生可以深入理解数据结构的基本原理,掌握C语言实现数据结构的方法,为后续的算法...

    数据结构ch树与二叉树PPT学习教案.pptx

    在本PPT学习教案中,主要探讨了树的基本概念,包括二叉树在内的特殊类型的树,以及它们的遍历和存储方法。 首先,树是由一个或多个结点组成,其中有一个特定的结点被称为根结点,其余结点分为若干个互不相交的子集...

    实验报告(二叉树)1

    在本实验报告中,主要涉及了数据结构中的线性表和二叉树的实现,具体包括基于顺序存储结构和链式存储结构的线性表,以及基于二叉链表的二叉树。以下是对这些知识点的详细说明: 1. **线性表**: 线性表是一种基本...

    平衡二叉树排序树操作的演示

    在该资源中,我们首先定义了平衡二叉树的抽象数据类型(ADT),包括数据对象、数据关系和基本操作。在这里,我们使用C语言实现了平衡二叉树的操作,包括树的建立、插入、删除和查找等。 平衡二叉树的ADT定义 我们...

    java数据结构与算法第二版

    抽象数据类型 有序链表 双向链表 迭代器 小结 问题 实验 编程作业 第6章 递归 三角数字 阶乘 变位字 递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 ...

    Java数据结构和算法(第二版)

    抽象数据类型 有序链表 双向链表 迭代器 小结 问题 实验 编程作业 第6章 递归 三角数字 阶乘 变位字 递归的二分查找 汉诺(Hanoi)塔问题 归并排序 消除递归 一些有趣的递归应用 小结 问题 实验 编程作业 第7章 高级...

    Delphi算法与数据结构 源码(下)

    1.4小结 第2章数组 2.1数组 2.2Delphi中的数组类型 2.3TList类和指针数组 2.4磁盘数组 2.5小结 第3章链表、栈和队列 3.1单链表 3.2双向链表 3.3链表的优缺点 3.4栈 3.5队列 3.6小结 .第4章查找 4.1比较...

    严蔚敏 数据结构(C语言版) 代码 23490 书中算法

    1.2.3 数据类型和抽象数据类型 6 1.3 抽象数据类型的表示与实现 7 1.4 算法和算法分析 11 1.4.1 算法的定义及特性 11 1.4.2 评价算法优劣的基本标准 11 1.4.3 算法的时间复杂度 12 1.4.4 算法的空间...

    树,二叉树及其遍历,哈夫曼树课题讲解

    二叉树是树的一个特殊类型,每个节点最多有两个子节点,分别被称为左子节点和右子节点。 在树的基本概念中,定义了树的几个关键特征: 1. 树是由至少一个节点(根节点)组成的有限集合,其余节点都有且仅有一个直接...

Global site tag (gtag.js) - Google Analytics