当前位置:网站首页>C#通過中序遍曆對二叉樹進行線索化
C#通過中序遍曆對二叉樹進行線索化
2022-06-29 12:47:00 【黃昏和星空】
本文講解
C#通過中序遍曆對二叉樹進行線索化
在二叉樹的結點上加上線索的二叉樹稱為線索二叉樹,對二叉樹以某種遍曆方式(如先序、中序、後序或層次等)進行遍曆,使其變為線索二叉樹的過程稱為對二叉樹進行線索化。 [1]
對於n個結點的二叉樹,在二叉鏈存儲結構中有n+1個空鏈域,利用這些空鏈域存放在某種遍曆次序下該結點的前驅結點和後繼結點的指針,這些指針稱為線索,加上線索的二叉樹稱為線索二叉樹。
這種加上了線索的二叉鏈錶稱為線索鏈錶,相應的二叉樹稱為線索二叉樹(Threaded BinaryTree)。根據線索性質的不同,線索二叉樹可分為前序線索二叉樹、中序線索二叉樹和後序線索二叉樹三種。
注意:線索鏈錶解决了無法直接找到該結點在某種遍曆序列中的前驅和後繼結點的問題,解决了二叉鏈錶找左、右孩子困難的問題。
///
/// 通過中序遍曆對二叉樹線索化
///
///
///
static void InThread(ref ThreadNode p, ref ThreadNode pre)
{
if (p != null)
{
InThread(ref p.lchild,ref pre);
if (p.lchild == null) { p.lchild = pre; p.ltag = 1; }
if (pre!=null&&pre.rchild==null) { pre.rchild = p;pre.rtag = 1; }
pre = p;
InThread(ref p.rchild, ref pre);
}
}
///
/// 創建線索二叉樹主邏輯
///
///
static void CreateInThread(ref ThreadNode T) {
ThreadNode pre = null;
if (T!=null) {
InThread(ref T,ref pre);
pre.rchild = null;
pre.rtag = 1;
}
边栏推荐
- Earth observation satellite data
- 求大数的阶乘 ← C语言
- oracle 19c : change the user sys/system username pasword under Linux
- [JUC series] ThreadLocal of synchronization tool class
- 【智能QbD风险评估工具】上海道宁为您带来LeanQbD介绍、试用、教程
- Inferiority complex and transcendence the meaning of life to you
- 面试突击61:说一下MySQL事务隔离级别?
- Gbase8s database select has order by Clause 2
- ERP编制物料清单 金蝶
- ERP preparation of bill of materials Huaxia
猜你喜欢

如何計算win/tai/loss in paired t-test

对p值的理解

【综合案例】信用卡虚拟交易识别

Quick look | the long-awaited 2022 Guangzhou assistant testing engineer's real problem analysis is finally released

go 学习-搭建开发环境vscode开发环境golang

智能指标驱动的管理和决策平台 Kyligence Zen 全新上线,限量内测中

LeetCode_双指针_中等_328.奇偶链表

MATLAB求极限

Go Senior Engineer required course | I sincerely suggest you listen to it. Don't miss it~

一种可解释的几何深度学习模型,用于基于结构的蛋白质结合位点预测
随机推荐
面试突击61:说一下MySQL事务隔离级别?
Comment calculer Win / Tai / Loss in paired t - test
揭秘百度智能测试在测试自动执行领域实践
云龙开炮版飞机大战(完整版)
Gbase8s database sorts standard or raw result tables
Yunlong fire version aircraft battle (full version)
推荐模型复现(一):熟悉Torch-RecHub框架与使用
Baidu cloud disk downloads large files without speed limit (valid for 2021-11 personal test)
Go learning - build a development environment vscode development environment golang
MATLAB求极限
百度云盘不限速下载大文件(2021-11亲测有效)
ERP编制物料清单 金蝶
【智能QbD风险评估工具】上海道宁为您带来LeanQbD介绍、试用、教程
Artbench: the first class balanced, high-quality, clean annotated and standardized artwork generation data set
How to install oracle19c in Centos8
InDesign插件-常规功能开发-JS调试器打开和关闭-js脚本开发-ID插件
Can software related inventions be patented in India?
How to install oracle19c in Centos8
参加2022年杭州站Cocos Star Meetings
Recommended model reproduction (II): fine arrangement model deepfm, DIN