二叉树遍历
/*
先序建立二叉树,中序输出二叉树
author:calm
*/
#include<stdio.h>
#include<malloc.h>
#define OK 1
#define FALSE 0
typedef int status;
typedef struct Node
{
status data;
struct Node *LTree,*RTree;
}BinaryTree;
/*PreCreateTree先序创建BinaryTree*/
void PreCreateTree(BinaryTree *head)
{
int ch=0;
scanf("%d",&ch);
if(ch=='#')
{
head=NULL;
}
else
{
head=(BinaryTree *)malloc(sizeof(BinaryTree));
head->data=ch;
PreCreateTree(head->LTree);
PreCreateTree(head->RTree);
}
}
void print(int data)
{
printf("%d ",data);
}
void InOrderTraverse(BinaryTree *head,void (*fun)(int num))
{
fun(head->data);
InOrderTraverse(head->LTree,fun);
InOrderTraverse(head->RTree,fun);
}
void main()
{
BinaryTree *head=NULL;
printf("Input:");
PreCreateTree(head);
putchar('\n');
InOrderTraverse(head,print);
putchar('\n');
getchar();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步