中序线索化二叉树
2009-08-07 08:16
120 查看
typedef enum{Link,Thread} PointerTag ; //枚举值Link和Thread分别表示0和一
typedef struct node
{
DataType data;
PointerTag lTag,rTag;//左右标志位
struct node *lchild,*rchid;
}BinThrNode;
typedef BinThrNode *BinThrTree;
BinThrNode *pre = NULL//全局量
void InorderThreading(BinThrTree p)
{
//将二叉树p线索化
if(p)//p为非空的时候。当前访问的结点是*p
{
InorderThreading(p->lchild)//左子树线索化
p->lTag=(p->lchild)?Link:Thread;
p->rTag=(p->rchild)?Link:Thread;
if(pre)//若*p的前驱*pre存在
{
if(pre->rTag==Thread)
pre->rchild == p;
if(pre->lTag==Thread)
pre->lchild== p;
}
pre=p;
InorderThreading(p->rchild);
}
}
还是递归的算法 , 书本不是很纤细 自考的书 哎 没办法
typedef struct node
{
DataType data;
PointerTag lTag,rTag;//左右标志位
struct node *lchild,*rchid;
}BinThrNode;
typedef BinThrNode *BinThrTree;
BinThrNode *pre = NULL//全局量
void InorderThreading(BinThrTree p)
{
//将二叉树p线索化
if(p)//p为非空的时候。当前访问的结点是*p
{
InorderThreading(p->lchild)//左子树线索化
p->lTag=(p->lchild)?Link:Thread;
p->rTag=(p->rchild)?Link:Thread;
if(pre)//若*p的前驱*pre存在
{
if(pre->rTag==Thread)
pre->rchild == p;
if(pre->lTag==Thread)
pre->lchild== p;
}
pre=p;
InorderThreading(p->rchild);
}
}
还是递归的算法 , 书本不是很纤细 自考的书 哎 没办法
相关文章推荐
- 项目1.3--中序线索化二叉树的算法验证
- 第十一周项目(3):验证算法——中序线索化二叉树的算法检验
- 第11周 项目1-验证算法(3)线索化二叉树(中序)
- 第11周项目1 验证算法(3)中序线索化二叉树的算法验证
- 给出二叉树,将二叉树进行中序线索化,在根据中序线索化二叉树,找出给定节点的前序后继节点,和给出节点的后序后继节点
- 线索化二叉树(前序线索化,中序线索化)
- 中序线索化二叉树
- 第十一周项目1——二叉树算法验证(3) 中序线索化二叉树的算法验证
- 第11周项目1 -二叉树算法验证(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1 验证算法(3)中序线索化二叉树的算法验证
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第十一周项目1-(3)中序线索化二叉树的算法
- 第11周项目1-验证算法(3)中序线索化二叉树的算法验证
- 第十一周项目1—③中序线索化二叉树
- 【算法与数据结构】二叉树 中序线索
- 第十周 项目3-中序线索化二叉树的算法验证
- YTU 3026: 中序线索化二叉树
- 第十一周 线索化二叉树(中序)
- 中序线索化二叉树