一、树状图

树状图是一种数据结构,它是由n(n>=1)个有限节点组成的具有层次关系的集合。因其结构看起来想个倒挂的树,即根朝上,叶子在下,故被称为“树”。

特点:

1. 每个节点有零个或多个子节点

2. 没有父节点的节点称为根节点

3. 每个非根节点有且只有一个父节点

图示:

二、树的种类

1. 无序树:树中任意节点的子节点之间没有顺序关系,这种树也称为自由树。

2. 有序树:树中任意节点的子节点之间有顺序关系。

2.1 二叉树:每个节点最多含有两个子树的树称为二叉树。

2.1.1 完全二叉树:对于一个二叉树,假设其深度为k(k>1)。除了第k层外,其他各层的节点数已达到最大值2^n-1(n那为深度),而第k层的节点自左向右依次连续紧密的                                                   排列,这样的树称为完全二叉树。

2.1.2 满二叉树:是完全二叉树的一个特例,即完全二叉树的最后一层的叶子节点也已经达到了最大数(2^n-1)。

2.2 霍夫曼树:带权路径最短的二叉树,又称为最优二叉树。

2.3 B树

三、树的相关术语

1. 节点的度:一个节点含有的子树的个数称为该节点的度;

2. 树的度:一棵树中,最大的节点的度称为树的度;

3. 叶节点或终端节点:度为零的节点;

4. 非终端节点或分支节点:度不为零的节点;

5. 父亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;

6. 孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;

7. 兄弟节点:具有相同父节点的节点互称为兄弟节点;

8. 节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;

9. 树的高度或深度:树中节点的最大层次;

10. 堂兄弟节点:父节点在同一层的节点互为堂兄弟;

11. 节点的祖先:从根到该节点所经分支上的所有节点;

12. 子孙:以某节点为根的子树中任一节点都称为该节点的子孙。

13. 森林:由m(m>=0)棵互不相交的树的集合称为森林;

java数据结构-非线性结构之树的更多相关文章

  1. java数据结构--线性结构

    一.数据结构 数据结构由数据和结构两部分组成,就是将数据按照一定的结构组合起来,这样不同的组合方式有不同的效率,可根据需求选择不同的结构应用在相应在场景.数据结构大致 分为两类:线性结构(如数组,链表 ...

  2. [置顶] ※数据结构※→☆非线性结构(tree)☆============树结点 链式存储结构(tree node list)(十四)

    结点: 包括一个数据元素及若干个指向其它子树的分支:例如,A,B,C,D等. 在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,简称结点. 在C语言 ...

  3. ※数据结构※→☆非线性结构(tree)☆============二叉树 顺序存储结构(tree binary sequence)(十九)

    二叉树 在计算机科学中,二叉树是每个结点最多有两个子树的有序树.通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree).二叉树常被用作二叉查找树和二叉堆或是 ...

  4. Java数据结构(十)—— 树

    树 树的概念和常用术语 常用术语 节点 根节点 父节点 子节点 叶子节点:没有子节点的节点 节点的权:节点的值 路径:节点A到节点B的路径 层 子树 树的高度:最大层数 森林:多颗子树构成森林 二叉树 ...

  5. Java数据结构之树和二叉树

    从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的 ...

  6. Java数据结构和算法(四)赫夫曼树

    Java数据结构和算法(四)赫夫曼树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 赫夫曼树又称为最优二叉树,赫夫曼树的一个 ...

  7. Java数据结构介绍(线性结构和非线性结构)

    数据结构包括:线性结构和非线性结构. 线性结构 数据元素之间存在一对一的线性关系 包括顺序存储结构和链式存储结构.顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的 链式存储的线性表称为链表,链表 ...

  8. 【Java数据结构学习笔记之一】线性表的存储结构及其代码实现

    应用程序后在那个的数据大致有四种基本的逻辑结构: 集合:数据元素之间只有"同属于一个集合"的关系 线性结构:数据元素之间存在一个对一个的关系 树形结构:数据元素之间存在一个对多个关 ...

  9. Java数据结构之树和二叉树(2)

    从这里始将要继续进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来 ...

随机推荐

  1. TDirectory.GetFiles获取指定目录下的文件

    使用函数: System.IOUtils.TDirectory.GetFiles 所有重载: class function GetFiles(const Path: string): TStringD ...

  2. JBPM4中常用概念总结

    1. 流程定义(Process Definition)    流程定义是记录在xml文件中的对流程的描述,它包含唯一的流程开始节点和多个流程功能节点,每个节点之间使用transition进行连接. P ...

  3. python 函数1

    一.背景 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下 ...

  4. keilkill.bat

    一.批处理文件 批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文 ...

  5. 定位 -CLGeocoder - 编码

    #import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewCont ...

  6. 第 11 章 桥梁模式【Bridge Pattern】

    以下内容出自:<<24种设计模式介绍与6大设计原则>> 今天我要说说我自己,梦想中的我自己,我身价过亿,有两个大公司,一个是房地产公司,一个是服装制造业,这两个公司都很赚钱,天 ...

  7. [wikioi]最长严格上升子序列

    http://wikioi.com/problem/1576/ 经典的动态规划.我写了个o(n^2)的DP方法. PPT:http://wenku.baidu.com/view/bd290294dd8 ...

  8. 【CF】7 Beta Round D. Palindrome Degree

    manacher+dp.其实理解manacher就可以解了,大水题,dp就是dp[i]=dp[i>>1]+1如何满足k-palindrome条件. /* 7D */ #include &l ...

  9. VirtualBox的四种网络连接方式详解

    VirtualBox中有4中网络连接方式: 1. NAT 2. Bridged Adapter 3. Internal 4. Host-only Adapter VMWare中有三种,其实他跟VMWa ...

  10. Visual Studio统计有效代码行数

    在网上看到别人用的方法: 按CTRL+SHIFT+F (Find in files),勾上支持正则表达式,然后输入搜索内容: ^:b*[^:b#/]+.*$ 以上表达式的统计可做到:#开头和/开头或者 ...