二叉树的建立
/*按前序输入二叉树结点中的值(一个字符)*/
/*#表示空结点,构造二叉链表表示二叉树T*/
#include<stdio.h>
#include<stdlib.h>
typedef char ElemType;
//结点数据结构
typedef struct BiTNode
{
ElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
//生成二叉树
void CreateBiTree(BiTree *T){
char c;
scanf("%c", &c);
if('#' == c){
*T = NULL;
}
else
{
*T = (BiTNode *)malloc(sizeof(BiTNode));
(*T)->data = c; //根
CreateBiTree(&(*T)->lchild); //左
CreateBiTree(&(*T)->rchild); //右
}
}
//输出当前层的数据
void visit(char c,int level){
printf("%c 位于第 %d 层\n", c, level);
}
//前序遍历输出树
void PreOrderTraverse(BiTree T, int level){
if(T){
visit(T->data,level);
PreOrderTraverse(T->lchild, level + 1);
PreOrderTraverse(T->rchild, level + 1);
}
}
int main(){
int level = 1;
BiTree T = NULL