C语⾔实现创建⼆叉树,先序遍历、中序遍历、后序遍历输出# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <iostream>
# define OK 0;
# define ERROR -1;
typedef int TElemType;
typedef char DataType;
typedef int Status;
typedef struct BiNode {
DataType data;//存⾃定义类型的值
struct BiNode *lchild, *rchild;//左右⼩孩指针
}BiNode,*BiTree;
void CreatBiNode(BiNode **Node)//此处应注意传递的参数(⼆重指针)
{
char data;
scanf_s("%c", &data);
*Node = (BiTree)malloc(sizeof(BiNode));
if (data == '#')
{
*Node = NULL;
}
el if ((data != '#') && (*Node))
{
(*Node)->data = data;
(*Node)->lchild = NULL;
(*Node)->rchild = NULL;
CreatBiNode(&(*Node)->lchild);
葱油白蟹CreatBiNode(&(*Node)->rchild);
}
}
Status PreOrderTraver(BiTree T) {
if (T == NULL) {
再从return OK;
}
el {
printf("%c", T->data);
PreOrderTraver(T->lchild);
PreOrderTraver(T->rchild);
}
}
Status InOrderTraver(BiTree T) {超市图标
if (T == NULL) {
return OK;每日一诵
}
el {
InOrderTraver(T->lchild);
printf("%c", T->data);
InOrderTraver(T->rchild);
}
}
Status PostOrderTraver(BiTree T) {
if (T == NULL) {
return OK;
}
el {
PostOrderTraver(T->lchild);
PostOrderTraver(T->rchild);
printf("%c", T->data);
}
}
int main()
{
printf("先序输⼊⼆叉树(空结点⽤'#'表⽰):");
英语的名人名言
城南旧事电子书BiTree T=NULL;
CreatBiNode(&T);薯片做法
printf("先序遍历⼆叉树:");
沟槽开挖
PreOrderTraver(T);
printf("\n中序遍历⼆叉树:");
InOrderTraver(T);
printf("\n后序遍历⼆叉树:");
PostOrderTraver(T);
system("pau");
return 0;
}
解决思想:⼩⽣⽤的是递归创建⼆叉树,递归遍历⼆叉树,因为使⽤递归会⽐较简洁。(主要就是递归啦)。PS:如若有⼈看见⼩⽣此篇blog,多多评价和指教哈~,先在此谢过啦!