假设二叉树是这样的
因为程序中要知道叶子结点(终点),所以要将上面的二叉树变成扩展二叉树 (把叶子结点的孩子补成#, 用作标记), 扩展后就变成了:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
struct node *leftChild;
struct node *rightChild;
char data;
}BiTreeNode, *BiTree;
void zhongxu(BiTree T)//中序遍历
{
if (T == NULL)
{
return;
}
else
{
printf("%c", T->data);
zhongxu(T->leftChild);
zhongxu(T->rightChild);
}
}
void createBiTree(BiTree *T)
{
char c;
scanf("%c", &c);
if ('#' == c)
*T = NULL;
else
{
*T = (BiTree)malloc(sizeof(BiTreeNode));
(*T)->data = c;
createBiTree(&(*T)->leftChild);
createBiTree(&(*T)->rightChild);
}
}
int main()
{
BiTree T;
createBiTree(&T);
zhongxu(T);
system("pause");
return 0;
}