本文为系列专题【数据结构和算法:简单方法】的第 12 篇文章。 数据结构 | 顺序表 数据结构 | 链表 数据结构 | 栈 数据结构 | 队列 数据结构 | 双链表和循环链表 数据结构 | 二叉树的概念和原理 数据结构 | 二叉树的创建及遍历实现 数据结构 | 线索二叉树 数据结构 | 二叉堆 算法 ...
分类:
其他好文 时间:
2021-05-24 13:33:11
阅读次数:
0
树 树的特点: 1.每个结点有零个或多个子结点; 2.每一个非根结点有且只有一个父结点; 3.没有父结点的结点称为根结点; 树的种类: 1.二叉树 树的任意节点至多包含两棵子树; 二叉树包含:完全二叉树,满二叉树,线索二叉树,平衡二叉树,二叉排序树,哈夫曼树; (1)完全二叉树: 对于一颗二叉树,最 ...
分类:
其他好文 时间:
2021-05-03 12:08:56
阅读次数:
0
#树与二叉树的思维导图: ##重要概念: 树是由n(n>=1)个结点(或元素)组成的有限集合 二叉树是一个有限的结点集合,这个集合或者为空,或者由一个根结点和两棵互不相交的称为左子树和右子树的二叉树组成 ###二叉树的遍历: 先序遍历: (1)访问根结点; (2)先序遍历左子树; (3)先序遍历右子 ...
分类:
其他好文 时间:
2021-05-03 12:00:00
阅读次数:
0
A.遍历二叉树是以一定的规则将二叉树中的结点排列成一个线性序列(DLR、LDR、LRD、DRL、RLD、RDL),这实质上是对非线性结构进行线性化操作。 B.将二叉树线索化能够不用递归,通过找到后继来线性地遍历二叉树 C.前驱、后继的信息是在动态遍历的过程中才知道的,需要保存下来,而n个结点的二叉链 ...
分类:
其他好文 时间:
2021-04-05 12:06:37
阅读次数:
0
package com.dai.tree.threadedbinarytree; public class ThreadedBinaryTreeDemo { public static void main(String[] args) { //测试中序线索二叉树功能是否正确 HeroNode roo ...
分类:
其他好文 时间:
2021-02-27 13:26:03
阅读次数:
0
线索二叉树(找前驱/后继) 建立线索的初衷就是为了在一个结点中能够更方便找到前驱结点和后继结点。 中序线索二叉树 先序线索二叉树 后序线索二叉树 中序线索二叉树找中序后继 //找到以p为跟的子树中,第一个被中序遍历的结点 ThreadNode *Firstnode(ThreadNode *p){ / ...
分类:
其他好文 时间:
2020-06-28 12:47:39
阅读次数:
107
周期 新增代码行 学习时长 发布博客量 学习目标 知识总结 改进措施 第八周 70 6 2 对二叉树操作熟练 二叉树的遍历 逻辑需要再理清 第九周 90 5 1 线索二叉树 遍历结点的前去或后继结点的地址 多做题去熟练 第十周 90 7 1 树、森林和二叉树的关系 三种表示法及三者之间互相转换 需要 ...
分类:
其他好文 时间:
2020-06-09 17:00:41
阅读次数:
68
一、线索二叉树的原理 通过考察各种二叉链表,不管儿叉树的形态如何,空链域的个数总是多过非空链域的个数。 n各结点的二叉链表共有2n个链域,非空链域为n-1个,但其中的空链域却有n+1个。如下图所示。 (除根结点以外,所有结点都有一共指向它的结点,所有非空链域为n-1,空链域为n+1) 因此,提出了一 ...
分类:
其他好文 时间:
2020-06-03 20:09:24
阅读次数:
54
能够运行的线索二叉树代码,保证看得懂,后期会专门出一篇文章讲线索二叉树是如何遍历的 这里注意:pre定义为全局变量 Node *pre=NULL; void inthread(Node *p) { if(p!=NULL) { inthread(p->left); if(p->left==NULL) ...
分类:
编程语言 时间:
2020-05-31 17:44:45
阅读次数:
55
1、二叉树 1.1 为什么需要树这种数据结构 1)数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可以使用二分查找检索速度。 缺点:如果要检索具体某个值,或者插入值(按一定顺序)回整体移动,效率较低 2)链式存储方式的分析 优点:在一定程度上对数组存储方式有优化(插入一个数值 ...
分类:
其他好文 时间:
2020-05-14 13:24:22
阅读次数:
62