📄 demo07_2.cpp
字号:
// demo07_2
#include "btrechar.h"
void Insert_in_Prethread(bitre &t,char x)
{
bitre p,s;
p=t->rchild;
visite_bnode(p,1); //首先指到右孩子结点
while ((p->ltag!=1) || (p->rtag!=1)) //在不是叶子结点时
{
if (p->ltag==0) p=p->lchild; //往左下搜索叶子结点
else p=p->rchild;
visite_bnode(p,1); //指示当前结点
}
s=(bitre)malloc(sizeof(struct bnode));
s->data=x;
s->lchild=NULL;
s->rchild=NULL; //产生结点装入x
s->lchild=p->lchild;
s->ltag=1; //S前趋线索化
s->rchild=p;
s->rtag=1; //S后继线索化
p->lchild=s;
p->ltag=0; //连接父子关系
if ((s->lchild!=NULL) && (s->lchild->rtag==1)) //修改S^的新前趋的
s->lchild->rchild=s; //(或T的左孩子的)后继线索
}
void main()
{
bitre t,t1;
load_bitre_file(t,"bitres\\letter.cbt");//读入二叉树
post_thread_bitre(t,t1); //后序线索化二叉树T为T1
display_threaded_bitre("postthread",t1);//显示线索二叉树
Insert_in_Prethread(t1,'1'); //调用算法插入字符1
Wait();
display_threaded_bitre("post,insert 1",t1);//显示结果
Wait();
Insert_in_Prethread(t1->lchild,'2'); //调用算法插入字符2
Wait();
display_threaded_bitre("post,insert 2",t1);//显示结果}
Wait();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -