//严蔚敏《数据结构》
//二叉链表: 线索二叉链表
//自学中,加油
#include<iostream>
using namespace std;
#define TElemType double
typedef enum PointerTag{Link,Thread};
typedef struct BiThrNode
{
TElemType data;
struct BiThrNode* lchild,* rchild;
PointerTag LTag,RTag;//左右两个标志域
}BiThrNode,* BiThrTree;
bool Creat_BiThrTree(BiThrTree& T)//先序构建二叉链表
{
TElemType num;
if(cin>>num){
T=new BiThrNode;
if(!T)
return false;
T->data=num;
T->LTag=T->RTag=Link;
Creat_BiThrTree(T->lchild);
Creat_BiThrTree(T->rchild);
}
if(!cin){
T=nullptr;
cin.clear();
while(cin.get()!='\n')
continue;
}
return true;
}
bool InThreading(BiThrTree& T,BiThrTree& pre)//中序递归遍历对二叉链表T进行线索化
//T指向当前访问的结点,pre始终指向T的前驱(此处的前驱指的是以中序遍历所得序列的前驱)
{
if(T){
InThreading(T->lchild,pre);
if(!T->lchi
2020-9-29 //严蔚敏《数据结构》 //二叉链表: 线索二叉链表
最新推荐文章于 2022-11-19 17:53:05 发布