树-线索二叉树
-
定义:线索化了的二叉树称为线索二叉树。
-
基本概念
-
线索:在存储结构中,指向前驱和后继结点的指针叫做线索。
-
线索链表:类似二叉树的链表存储结构中加上线索,组成的存储结构就是线索链表。
-
线索化:对二叉树以某种次序进行遍历并且加上线索的过程。
-
-
线索二叉树的存储结构
typedef struct BiThrNode { TElemType data; //数据域 struct BiThrNode *LChild; //左孩子域 int Ltag; //左指针的标识域 struct BiThrNode *RChild; //右孩子域 int Rtag; //右指针的标识域 }BiThrTNode,*BiThrTree; 标识域解释如下:
- Ltag = 0;LChild域指针指示结点的左孩子。
- Ltag = 1;LChild域指针指示结点的遍历前驱。
- Rtag = 0;RChild域指针指示结点的右孩子。
- Rtag = 1;Rchild域指针指示结点的遍历后继。
-
线索二叉树的作用
- 对于经常需要遍历的二叉树,可以采用线索二叉树的存储结构,在常量阶上,线索二叉树的效率高于二叉树。
-
线索二叉树的创建
- 线索二叉树的线索化
- DLR
- LDR
- LRD
-
线索二叉树的遍历
- DLR
- LDR
- LRD