#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()
{
T ch;
cout<<"!!!注意:(1)'#'表示空结点;
线索二叉树的中序遍历
最新推荐文章于 2025-04-12 18:08:53 发布
本文介绍了一种实现线索二叉树的方法,包括先序构造二叉树、中序遍历线索化、中序遍历二叉线索树等功能。通过输入元素构建二叉树,并使用中序遍历进行线索化处理,以便于更高效地遍历线索二叉树。


2382

被折叠的 条评论
为什么被折叠?



