中序线索化二叉树

中序线索化二叉树;

static void* prev;

template

void inorder_thread_aux(Tbtnode* root)

{

if(root == 0)

return;

inorder_thread_aux(root->lc_);

//线索化root->lc_ 和prev->rc_;

if(root->lc_ == 0)

root->setlc((Tbtnode*)prev, false);

if(prev != 0 && ((Tbtnode*)prev)->rc_ == 0)

((Tbtnode*)prev)->setrc(root, false);

prev = root;

inorder_thread_aux(root->rc_);

}

static void* prev;

template

void inorder_thread(Tbtnode* root)

{

prev = 0;

inorder_thread_aux(root);

//线索化最后一个节点prev;

((Tbtnode*)prev)->setrc(0, false);

}

遍历中序线索化二叉树:

template

NT* first(NT* root)

{

if(!root) return root;

for(; root->haslc(); root = root->lc_) { }

return root;

}

template

NT* next(NT* node)

{

if(node->hasrc()) return first(node->rc_);

return node->rc_;

}

template

void inorder_v2(Tbtnode* root,

void (*visit)(Tbtnode*))

{

for(root = first(root); root != 0;

root = next(root))

visit(root);

}

中序线索化二叉树;

static void* prev;

template

void inorder_thread_aux(Tbtnode* root)

{

if(root == 0)

return;

inorder_thread_aux(root->lc_);

//线索化root->lc_ 和prev->rc_;

if(root->lc_ == 0)

root->setlc((Tbtnode*)prev, false);

if(prev != 0 && ((Tbtnode*)prev)->rc_ == 0)

((Tbtnode*)prev)->setrc(root, false);

prev = root;

inorder_thread_aux(root->rc_);

}

static void* prev;

template

void inorder_thread(Tbtnode* root)

{

prev = 0;

inorder_thread_aux(root);

//线索化最后一个节点prev;

((Tbtnode*)prev)->setrc(0, false);

}

遍历中序线索化二叉树:

template

NT* first(NT* root)

{

if(!root) return root;

for(; root->haslc(); root = root->lc_) { }

return root;

}

template

NT* next(NT* node)

{

if(node->hasrc()) return first(node->rc_);

return node->rc_;

}

template

void inorder_v2(Tbtnode* root,

void (*visit)(Tbtnode*))

{

for(root = first(root); root != 0;

root = next(root))

visit(root);

}


相关文章

  • 如何规范举报线索的统一管理
  • 1.加强举报线索的集中统一管理,严格落实要案举报线索备案制度: 2.加强举报线索的分流管理,严格依法做到7日内分流,严把举报线索移送质量关,提高举报线索移送质量: 3.加强举报线索的初核工作,严把初核范围,提高初核质量: 4.加强实名举报答 ...查看


  • 如何获得好的新闻线索
  • 如何获得好的新闻线索 在新闻采访活动中,很多记者都有感受,苦恼于没有新闻很难发现,没有东西可采拍编写.果真如此吗﹖其实不然.这主要在于作为一个记者的新闻敏感性的有无和强弱.丰富多彩的现实生活犹如一座座宝山,只有用心发现的记者,才能慧眼识取新 ...查看


  • 一线串珠巧成文
  • 考场上,考生为了刻画人物表现主题,能想到的常常是一些片断,通常采用的方法是用小标题法或用一二三表示,这样做当然是可以的,但艺术性显得不够,本人经过实践,认为考场记事写人记叙文如果能安排一条线索,就能使行文流畅,条理清晰,从而得到高分.如何设 ...查看


  • 写作:叙事的线索
  • 写作:记叙的线索 学习目标 1.认识和理解记叙文的线索及其重要性. 2.能根据题目来合理选取线索来布局文章结构,学会抓线索写记叙文的方法. 一.导入 <一件军大衣> 昔日雄风横扫战场的老军人奄奄一息在病床上,耳听着外屋儿女们争家 ...查看


  • 英语"线索型"阅读教学的类型和有效模式 �オオ�
  • [摘要]在日常的英语阅读教学中,教师指导学生通过全篇文章上下文之间的联系线索来把握全文的主旨,做到准确快速理解全文,这就是所谓的"线索型"阅读教学."线索型"阅读教学可分为时间线索类.空间线索类.逻辑 ...查看


  • 基层反贪线索匮乏的原因及对策分析
  • 基层反贪线索匮乏的原因及对策分析 近年来,在党中央"有案必查,有腐必反","老虎"."苍蝇"一起打,既突出查办大案要案,又注意查办群众反映强烈的案件,这一反腐倡廉方针的指导下,基层 ...查看


  • 八年级阅读指导 线索:写人叙事散文的串珠绳
  • 线索:写人叙事散文的串珠绳 泉州实验中学 李汇 什么是写人叙事散文的线索? 线索是作者选择材料的准绳,我们形象称之为线索,是作者选择材料的脉络或描写.记叙的脉络.例如:<回忆我的母亲>以"母亲勤劳"为线索:& ...查看


  • 怎样安排文章线索
  • 怎样安排文章线索 邱德保 一位技艺高超的工匠,面对零散的粒粒珍珠,如果缺乏合适的线就穿缀不成闪光的项链. 写文章也如此,当作者选定一个能带动一切的线索时,他就可以把各种材料串联起来,形成 一个有机的整体.作品构思中的一项重要工作就是确定叙述 ...查看


  • (36)[转载]如何叙事(三)设置好线索
  • [转载]如何叙事(三)设置好线索 (2014-03-07 22:38:41) 转载▼ 标签: 转载 原文地址:如何叙事(三)设置好线索作者:叶志聪 一.什么是记叙文的线索? 记叙文的线索是贯穿全文,将材料串连下地来的一条主线,它把文章的各个 ...查看


  • 如何寻找文章中的线索
  • 如何寻找文章中的线索 线索可以是物品.人物.时间.事件.地点的转换.人物的感情变化等等,找到文章中反复出现的词语或者同类词语(表示时间的虽不是相同的词语却是同一类词),仔细分析,如果它能将文章零散的材料贯穿成一个统一而紧密的整体,那么它基本 ...查看


热门内容