代码如下:
#include <stdio.h>
#include <stdlib.h>
typedef char TElemType ;
typedef struct TNode
{
TElemType data;
struct TNode *lchild , *rchild;
}BiTNode , *BiTree;
int creatTree(BiTree *root) //递归创建二叉树
{
char ch;
scanf("%c" , &ch);
if(ch == '#')
{
(*root) = NULL;
}
else
{
if(!((*root) = (BiTNode *)malloc(sizeof(BiTNode))))
{
printf("malloc error!\n");
return -1;
}
(*root)->data = ch;
creatTree(&((*root)->lchild));
creatTree(&((*root)->rchild));
}
return 0;
}
void preOrderTraverse(BiTree tree) //递归前序遍历
{
if(tree)
{
printf("%c", tree->data);
preOrderTraverse(tree->lchild);
preOrderTraverse(tree->rchild);
}
return ;
}
void inOrderTraverse(BiTree tree) //递归中序遍历
{
if(tree)
{
inOrderTraverse(tree->lchild);
printf("%c", tree->data);
inOrderTraverse(tree->rchild);
}
return ;
}
void lastOrderTraverse(BiTree tree) //递归后序遍历
{
if(tree)
{
lastOrderTraverse(tree->lchild);
lastOrderTraverse(tree->rchild);
printf("%c", tree->data);
}
return ;
}
int main(int argc , char **argv)
{
BiTree tree ;
creatTree(&tree);
printf("\n先序遍历\n");
preOrderTraverse(tree);
printf("\n中序遍历\n");
inOrderTraverse(tree);
printf("\n后序遍历\n");
lastOrderTraverse(tree);
printf("\n");
return 0;
}
本文介绍了一种使用C语言实现二叉树的方法,包括递归创建二叉树及三种遍历方式:前序、中序和后序遍历。通过简单的输入,可以创建出二叉树并进行遍历输出。
,如果有错误欢迎指出&spm=1001.2101.3001.5002&articleId=8857699&d=1&t=3&u=038124dc2b0d4d3e97105253d3b195d1)
8320

被折叠的 条评论
为什么被折叠?



