#include<iostream>
#include<vector>
using namespace std;
typedef enum{Link,Thread}PointTag; //Link==0:指针,Thread==1:线索
template<class T>
class BiTrNode{
template<class T> friend class BiTrTree;
private:
T data;
BiTrNode *lchild,*rchild; //左右孩子指针
PointTag ltag,rtag; //左右标志
};
template<class T>
class BiTrTree
{
public:
//BiTrTree<T>():elem={};
void InputBiTrNode(); //输入构成数的结点元素,‘#’表示空串
void Pre_CreateBiTrTree(BiTrNode<T> *&TT); //先序构造二叉树
void InThreading(BiTrNode<T> *p); //中序遍历二叉树
void InOrderThreading(BiTrNode<T> *&Thrt,BiTrNode<T> *TT);//中序遍历二叉树T,将其中序线索化,Thrt指向头结点
void InOrderTraverse_Thr(BiTrNode<T> *TT); //中序遍历二叉线索树
void visit(T data); //输出结点元素
private:
vector<T> elem;
BiTrNode<T> *pre;
};
template<class T>
void BiTrTree<T>::InputBiTrNode(
线索二叉树的中序遍历
本文介绍了一种实现线索二叉树的方法,包括先序构造二叉树、中序遍历线索化、中序遍历二叉线索树等功能。通过输入元素构建二叉树,并使用中序遍历进行线索化处理,以便于更高效地遍历线索二叉树。
摘要由CSDN通过智能技术生成