//所谓线索二叉树无非是为了让原本指向NULL的节点指向一个详细的 //已经存在的节点,逻辑上实现指针的无空指向的实现。以下是我中 //序线索二叉树的实现。还是把先序线索二叉树与后序线索分开来写吧。 #include<iostream> using namespace std; template<t ...
分类:
其他好文 时间:
2017-07-16 10:10:03
阅读次数:
193
不知道你是否和我当时一样,对于线索二叉树,有点云里雾里的感觉,现在我们来一起探讨下吧。 首先,我们所应该知道的是:线索二叉树是对二叉链表中空指针的充分利用,也就是说,使得原本是空指针的转化成在某种遍历的顺序下,指向该结点的前驱和后继。也许听的有点糊涂,没关系,请接着往下看。 在二叉链表中,每个结点都 ...
分类:
其他好文 时间:
2017-05-01 17:13:14
阅读次数:
245
//线索二叉树,这里在二叉树的基础上增加了线索化 //杨鑫 #include <stdio.h> #include <stdlib.h> typedef char ElemType; typedef enum {Link,Thread} childTag; //Link表示结点。Thread表示线索 ...
分类:
编程语言 时间:
2017-04-26 22:01:20
阅读次数:
255
1、定义与基本术语 树的结构定义 其他表示树的方法: 其他术语: 2、二叉树 1)定义: 性质: 2)满二叉树与完全二叉树 3、存储结构 4、遍历二叉树 伪代码 中序遍历非递归算法 前序遍历构建二叉树 5、线索二叉树 中序遍历线索二叉树 后序线索二叉树 中序遍历二叉线索树 非递归算法 6、树和森林 ...
分类:
其他好文 时间:
2016-12-19 10:46:53
阅读次数:
199
1.#include <stdio.h>#include <stdlib.h>#include "BTree.h"#include "SeqList.h"/* 线索二叉树 */struct Node{ BTreeNode header; char v;};void printf_data(BTree ...
分类:
其他好文 时间:
2016-12-10 18:44:54
阅读次数:
170
指向前驱和后继的指针称为线索,加上线索的二叉链表称为线索链表,相应的二叉树就称为线索二叉树(Threaded Binary Tree)。 线索化的实质就是将二叉链表的空指针改为指向前驱或后继的线索。由于前驱和后继的信息只有在遍历该二叉树时才能得到,所以线索化的过程就是在遍历的过程中修改空指针的过程。 ...
分类:
其他好文 时间:
2016-12-09 11:35:23
阅读次数:
192
对于一个普通的二叉树 我们可以很明显的看到,在一个二叉树中,会有许多的空结点,而这些空结点必然会造成空间的浪费,为了解决这个问题,我们可以引入线索二叉树,把这些空结点利用起来,利用 ‘^’ 记录给定结点的前驱后继,那么问题就来了,该如何建立呢? 前面我们说过四种的遍厉方法,我应该用哪种方法来建立线索 ...
分类:
其他好文 时间:
2016-11-15 11:07:12
阅读次数:
261
1、小堆:堆的构造,i>数组直接生成堆(向下调整),iii>插入创建堆(向上调整);(1)、怎么实现一次调整?找到最后一个非叶子结点,n/2-1;一直往下调整即可!(2)堆排----->优先级队列堆的删除,只能是堆顶元素,再拿最后一个元素补充上去。在向下做一次调整。形成新的堆..
分类:
其他好文 时间:
2016-08-10 00:59:56
阅读次数:
198
1.什么是线索二叉树? 在有n个结点的二叉链表中必定存在n+1个空指针域,因此可以利用这些空指针域存放指向结点的某种遍历次序下的前趋和后继结点的指针,这种指向前趋和后继结点的指针称为“线索”,加上线索的二叉链表称为线索链表,相应的二叉树被称为线索二叉树。 2.线索二叉树有何作用? 有了二叉树不就足够 ...
分类:
其他好文 时间:
2016-08-08 20:54:43
阅读次数:
156