文章目录
课程链接
1.二叉树的建立和遍历算法
2.程序
# include <stdio.h>
# include <stdlib.h>
typedef char ELemType;
typedef struct BiTNode
{
char data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
//创建一个二叉树,约定用户按照前序遍历方式输入数据
void creatBiTree(BiTree *T){
ELemType c;
scanf("%c", &c);
if( ' ' == c) *T = NULL;
else {
*T = (BiTNode *)malloc(sizeof(BiTNode));
(*T)->data = c;
creatBiTree(&(*T)->lchild);
creatBiTree(&(*T)->rchild);
}
}
//访问二叉树节点的具体操作
void visit(ELemType 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;
creatBiTree(&T);
preOrderTraverse(T, level);
}