#include<iostream>
using namespace std;
typedef char TElemType; //TElemType 相当于 char
typedef struct BiThrNode
{
TElemType data;
struct BiThrNode *lchild,*rchild; //左右孩子指针
int LTag,RTag; //左右标志
} BiThrNode,*BiThrTree;
BiThrTree pre;
BiThrTree p;
BiThrTree Thrt;
void InThreading(BiThrTree p) //以结点p为根的子树中序线索化
{
if(p)
{
InThreading(p->lchild);
if(!p->lchild)
{
p->LTag = 1;
p->lchild=pre;
}
else p->LTag = 0;
if(!pre->rchild)
{
pre->RTag=1;
pre->rchild=p;
}
else p->RTag = 0;
pre = p;
InThreading(p->rchild);
}
}
void InOrderThreading(BiThrTree &Thrt,BiThrTree T) //带头结点的二叉树中序线索化
{
Thrt = new BiThrNode;
Thrt-> LTag = 0;
Thrt->RTag = 1
二叉树之线索二叉树基本操作(C++实现)
最新推荐文章于 2023-03-29 20:51:20 发布
本文详细介绍了线索二叉树的概念,包括如何为二叉树添加线索,以及线索二叉树的主要操作,如前序遍历、中序遍历和后序遍历。通过C++代码示例,展示了线索二叉树的构造和遍历过程,有助于深入理解线索二叉树在数据结构中的应用。
摘要由CSDN通过智能技术生成