线索二叉树(复习)
来源:互联网 发布:淘宝联华文具 编辑:程序博客网 时间:2024/06/08 07:25
投简历笔试体重经常遇见线索二叉树的题目,所以特来复习一下:
参考:http://blog.csdn.net/u014492609/article/details/40477795
中序遍历二叉树顺序:左子树--根节点--右子树,此外其子树的访问顺序同上。
线索二叉树原理:通过考察各种二叉链表,不管二叉树的形态如何,空链域的个数总是多过非空链域的个数。准确的说,n各结点的二叉链表共有2n个链域,非空链域为n-1个,但其中的空链域却有n+1个。(简单的数学问题,就不解释了)
因此:提出了一种方法,利用原来的空链域存放指针,指向树中其他结点。这种指针称为线索。
p指向二叉链表中的一个结点,以下是建立线索的规则:
(1)如果p->lchild为空,则存放指向中序遍历序列中该结点的前驱结点。这个结点称为p的中序前驱;
(2)如果p->rchild为空,则存放指向中序遍历序列中该结点的后继结点。这个结点称为p的中序后继;
在决定lchild是指向左孩子还是前驱,rchild是指向右孩子还是后继,这样就需要一个标志,指示该节点的两个指针域是否可以被利用,于是我们把节点扩容,变为:
规定:(1)ltag为0时指向该结点的左孩子,为1时指向该结点的前驱;
(2)rtag为0时指向该结点的右孩子,为1时指向该结点的后继;
原理如上,代码就不写了,一搜一堆。
阅读全文
0 0
- 线索二叉树(复习)
- 6.3线索二叉树(二叉树的线索化)
- (C++)二叉树的线索化 / 线索二叉树
- 线索二叉树(解释)
- 线索二叉树(上)
- 线索二叉树(下)
- 线索二叉树(二)
- 数据结构 树(线索二叉树)
- 线索二叉树 --->树
- 线索二叉树(C# 2.0)
- morris traversal(线索二叉树)
- 线索二叉树(中序索引)
- 数据结构--二叉树(线索链表)
- (1.2.5.3)线索二叉树
- 线索二叉树(Threaded Binary Tree)
- 二叉线索树(Threaded binary tree)
- 中序线索二叉树(Java)
- 二叉树的线索化(一)
- CIDR地址块及其子网划分(内含原始IP地址分类及其子网划分的介绍)
- java算法之快速排序
- Vue2 全局-Vue.extend构造器拓展
- python里的协程
- UVA
- 线索二叉树(复习)
- (欧) 第18章 计算机网络及分布式系统
- 网络流24题-14
- VUE开发扫雷
- selenium自动化测试
- 【C】C语言核心知识点总结(Reference Manual)
- 学习MongoDB 七: MongoDB索引(索引基本操作)(一)
- es6中模块化:export和export default的区别
- windows用命令行安装git docker python nvm node