//线索二叉树,这里在二叉树的基础上添加了线索化
//杨鑫
#include <stdio.h>
#include <stdlib.h>
typedef char ElemType;
typedef enum {Link,Thread} childTag; //Link表示结点,Thread表示线索
typedef struct bitNode
{
ElemType data;
struct bitNode *lchild, *rchild;
int ltag, rtag;
} bitNode, *bitTree;
bitTree pre; //创建全局变量,表示刚刚访问过的结点
/*
创建二叉树,其输入必须按照前序遍历的次序。
T:二叉树根节点
arr:按照前序遍历次序排列的各节点的值。无孩子结点时用空格代替
*/
void create_tree(bitTree *T, char **arr)
{
char c;
sscanf(*arr,"%c",&c); //读入一个结点值
(*arr)++;
if(' '== c) //如果是空格,表示空结点
{
*T=NULL;
}
else
{
*T=(bitTree)malloc(sizeof(bitNode)); //构造新结点
(*T)->data=c;
(*T)-&
数据结构之---C语言实现线索二叉树
最新推荐文章于 2024-08-03 17:21:21 发布
本文深入探讨了如何使用C语言构建线索二叉树,详细解释了线索二叉树的概念及其在数据结构中的应用,包括插入和查找操作的实现步骤。
摘要由CSDN通过智能技术生成