通过考察各种二叉链表,不管儿叉树的形态如何,空链域的个数总是多过非空链域的个数。准确的说,n各结点的二叉链表共有2n个链域,非空链域为n-1个,但其中的空链域却有n+1个。如下图所示。 因此,提出了一种方法,利用原来的空链域存放指针,指向树中其他结点。这种指针称为线索。 记ptr指向二叉链表中...
分类:
其他好文 时间:
2015-12-23 12:27:02
阅读次数:
192
本文针对数据结构基础系列(6):树和二叉树第7, 11-15课时7 二叉树与树、森林之间的转换
11 二叉树遍历非递归算法
12 层次遍历算法
13 二叉树的构造
14 线索二叉树
15 哈夫曼树【项目1 - 二叉树算法验证】 运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于,可以从更多角度体会算法,以达到逐渐掌握算法的程度。使用你的测试数据,并展示测试结果,观察运...
分类:
其他好文 时间:
2015-11-01 16:43:53
阅读次数:
206
本文是数据结构基础系列(6):树和二叉树中第14课时线索二叉树的例程。#include
#include #define MaxSize 100
typedef char ElemType;
typedef struct node
{
ElemType data;
int ltag,rtag; //增加的线索标记
struct...
分类:
其他好文 时间:
2015-10-20 06:42:33
阅读次数:
164
线索二叉树的数据结构enum PointerTag//枚举
{
Link,Thread//Link(0):指针;thread(1):线索
};struct BiThrNode
{
TElemType data;//结点的值
BiThrNode * lchild, *rchild;//左右孩子结点
PointerTag LTag : 2;//左标志,占2bit...
分类:
其他好文 时间:
2015-08-20 01:36:13
阅读次数:
234
#include
#include
#define MaxSize 100
/*线索二叉树类型定义*/
typedef char DataType;
typedef enum {Link,Thread}PointerTag;//Link=0表示指向孩子节点,Thread=1表示指向前驱节点或后继节点
typedef struct Node{
DataType data;
struct Node...
分类:
其他好文 时间:
2015-08-10 00:23:31
阅读次数:
103
原文地址:http://www.cnblogs.com/Security-Darren/p/4716082.html 转载务必注明出处! 线索二叉树的思想来源于二叉树的存储结构中,存在一些空的指针域,因此是否能够将这些空间利用起来,存储一些关于节点间先后顺序的信息,由此产生了线索二叉树。线索...
分类:
其他好文 时间:
2015-08-09 20:31:23
阅读次数:
200
//所谓线索二叉树无非是为了让原本指向NULL的节点指向一个具体的
//已经存在的节点,逻辑上实现指针的无空指向的实现,下面是我中
//序线索二叉树的实现。还是把先序线索二叉树与后序线索分开来写吧。#include
using namespace std;template
struct Node
{
Type data;
bool r...
分类:
其他好文 时间:
2015-08-07 20:08:00
阅读次数:
106
在上一篇数据结构的博文《数据结构(三):非线性逻辑结构-二叉树》中已经对二叉树的概念、遍历等基本的概念和操作进行了介绍。本篇博文主要介绍几个特殊的二叉树,堆、哈夫曼树、二叉搜索树、平衡二叉搜索树、线索二叉树,它们在解决实际问题中有着非常重要的应用。本文主要从概念和一些基本操作上进行分类和总结。
一、概念总揽
(1) 堆
堆(heap order)是一种特殊的表,如果将它看做是一颗完全二叉树的...
分类:
其他好文 时间:
2015-08-05 01:06:22
阅读次数:
208
线索二叉树的遍历,就是在已经建立后的线索二叉树中,根据线索查找结点的前驱和后继。利用在线索二叉树中查找结点的前驱和后继的思想,遍历线索二叉树。#include
#include
#include
#define MAXSIZE 100
typedef char ElemType;
typedef enum
{
Link,/*指向孩子结点*/Thread/*...
分类:
其他好文 时间:
2015-07-28 21:09:29
阅读次数:
125