java数据结构-非线性结构之树
一、树状图
树状图是一种数据结构,它是由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数据结构-非线性结构之树的更多相关文章
- java数据结构--线性结构
一.数据结构 数据结构由数据和结构两部分组成,就是将数据按照一定的结构组合起来,这样不同的组合方式有不同的效率,可根据需求选择不同的结构应用在相应在场景.数据结构大致 分为两类:线性结构(如数组,链表 ...
- [置顶] ※数据结构※→☆非线性结构(tree)☆============树结点 链式存储结构(tree node list)(十四)
结点: 包括一个数据元素及若干个指向其它子树的分支:例如,A,B,C,D等. 在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,简称结点. 在C语言 ...
- ※数据结构※→☆非线性结构(tree)☆============二叉树 顺序存储结构(tree binary sequence)(十九)
二叉树 在计算机科学中,二叉树是每个结点最多有两个子树的有序树.通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree).二叉树常被用作二叉查找树和二叉堆或是 ...
- Java数据结构(十)—— 树
树 树的概念和常用术语 常用术语 节点 根节点 父节点 子节点 叶子节点:没有子节点的节点 节点的权:节点的值 路径:节点A到节点B的路径 层 子树 树的高度:最大层数 森林:多颗子树构成森林 二叉树 ...
- Java数据结构之树和二叉树
从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的 ...
- Java数据结构和算法(四)赫夫曼树
Java数据结构和算法(四)赫夫曼树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 赫夫曼树又称为最优二叉树,赫夫曼树的一个 ...
- Java数据结构介绍(线性结构和非线性结构)
数据结构包括:线性结构和非线性结构. 线性结构 数据元素之间存在一对一的线性关系 包括顺序存储结构和链式存储结构.顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的 链式存储的线性表称为链表,链表 ...
- 【Java数据结构学习笔记之一】线性表的存储结构及其代码实现
应用程序后在那个的数据大致有四种基本的逻辑结构: 集合:数据元素之间只有"同属于一个集合"的关系 线性结构:数据元素之间存在一个对一个的关系 树形结构:数据元素之间存在一个对多个关 ...
- Java数据结构之树和二叉树(2)
从这里始将要继续进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来 ...
随机推荐
- WordPress D8 主题当中截取文章首图并显示的函数
取自 WordPress D8 主题; 路径 theme\d8\modules ; if ( ! function_exists( 'deel_thumbnail' ) ) : function de ...
- Instructions Set JAVA_HOME System-Wide
Instructions Set JAVA_HOME System-Wide 1 Start a root terminal session and then change directories t ...
- Ubuntu的关机重启命令知识
Ubuntu的关机重启命令知识,以作备忘. 重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 10 过10分钟自动重启(roo ...
- osg学习笔记3 简单几何模型
osg::Geode (geometry node) osg::Geode类表示场景中的渲染几何叶节点,它包含了渲染用的几何信息,没有子节点. 要绘制的几何数据保存在osg::Geode管理的一组os ...
- Toy Storage
Toy Storage 题型与2318 TOYS一样,注意要对线段排序,现在模板又更新了~~ #include<iostream> #include<cstdio> #incl ...
- POJ 2635 The Embarrassed Cryptographer 大数模
题目: http://poj.org/problem?id=2635 利用同余模定理大数拆分取模,但是耗时,需要转化为高进制,这样位数少,循环少,这里转化为1000进制的,如果转化为10000进制,需 ...
- Quartz1.8.5例子(十四)
org.quartz.scheduler.instanceName: PriorityExampleScheduler # Set thread count to 1 to force Trigger ...
- asp.net 登陆后在ashx处理程序中获取不到Session
登录后存储Session,另一个页面Ajax请求 ashx页面,发现无法获取到Session,Session is NULL 使用“IReadOnlySessionState”这个接口就可以
- 【POJ 1639】 Picnic Planning (最小k度限制生成树)
[题意] 有n个巨人要去Park聚会.巨人A和先到巨人B那里去,然后和巨人B一起去Park.B君是个土豪,他家的停车场很大,可以停很多车,但是Park的停车场是比较小.只能停k辆车.现在问你在这个限制 ...
- 【BZOJ 2820】 YY的GCD (莫比乌斯+分块)
YY的GCD Description 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少 ...