- 性质:
(1)根节点不包含字符,除根节点外的每个节点只包含一个字符(本文在根节点也存储了字符)。
(2)从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。
(3)每个节点的所有子节点包含的字符串不相同。
(4)节点采用“树中有树”的建立方法,避免多余的内存占用。
来源:三叉树-百度百科 - 代码:
#include <stdio.h>
#include <stdlib.h>
typedef char ElemType;
typedef struct TripTree
{
ElemType data;
struct TripTree *lChild, *mChild, *rChild;
} TripTree, *TTree;
void createTripTree(TTree *T)
{
ElemType e;
scanf("%c", &e);
if (e == '#')
{
*T = NULL;
}
else
{
*T = (TTree) malloc(sizeof(TripTree));
if (!*T)
{
exit(-1);
}
(*T)->data = e;
createTripTree(&(*T)->lChild);
createTripTree(&(*T)->mChild);
createTripTree(&(*T)->rChild);
}
}
void middleOrder(TTree T)
{
if (T != NULL)
{
printf("%c ", T->data);
middleOrder(T->lChild);
middleOrder(T->mChild);
middleOrder(T->rChild);
}
}
int main()
{
TTree T;
createTripTree(&T);
middleOrder(T);
return 0;
}
- 截图:
![三叉树](https://img-blog.csdnimg.cn/f073c68cdd40414fb1b33f4c0ebbc7f5.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1FpYW5fUWlhbl9JVA==,size_16,color_FFFFFF,t_70)
![先序创建三叉树](https://img-blog.csdnimg.cn/a3f6197248c24dd986436986da64e585.png)