2021-11-11

二叉树 前序遍历 后序遍历 中序遍历 C语言

将下列二叉树使用链式结构存储该二叉树,并按分别照“前序遍历”、“中序遍历”、“后续遍历”的顺序输出,打印的格式为“120340,120340,120340”。所写为此树
以下为代码此树代码展示:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
const int MAX=50;
typedef struct Tree{ int data;
Tree *Left;
Tree *Right;
}Tree,*Bitree;
void print_DLR(Tree *p);
void print_LDR(Tree *p);
void print_LRD(Tree *p);
void create_Link(Bitree *T){
(T)=(Tree)malloc(sizeof(Tree));
(*T) -> data = 1;
(T) -> Left =(Tree)malloc(sizeof(Tree));
(T) -> Right = (Tree)malloc(sizeof(Tree));
(*T) -> Left -> data = 2;
(T) -> Left -> Left = (Tree)malloc(sizeof(Tree)); (T) -> Right -> Right = (Tree)malloc(sizeof(Tree)); (*T) -> Left -> Left -> data = 4;
(*T) -> Left -> Left -> Left = NULL;
(*T) -> Left -> Left -> Right = NULL;
(T) -> Left -> Right = (Tree)malloc(sizeof(Tree)); (*T) -> Left -> Right -> data = 5;
(*T) -> Left -> Right -> Left = NULL;
(T) -> Left -> Right -> Right = (Tree)malloc(sizeof(Tree));
(*T) -> Left -> Right -> Right -> data = 7;
(*T) -> Left -> Right -> Right -> Left = NULL;
(*T) -> Left -> Right -> Right -> Right = NULL;
(T) -> Right = (Tree)malloc(sizeof(Tree));
(*T) -> Right -> data = 3;
(T) -> Right -> Left = (Tree)malloc(sizeof(Tree)); (*T) -> Right -> Left -> data = 6;
(*T) -> Right -> Left -> Left = NULL;
(*T) -> Right -> Left -> Right = NULL;
(*T) -> Right -> Right = NULL; }
void print_DLR(Tree *p)//前序遍历,通过递归遍历二叉树,读者可以好好体会,先把二叉树想成最简单的形式,只有3个节点,就容易理解了
{ if§{ printf("%d “,p->data);
print_DLR(p->Left);
print_DLR(p->Right); }}
void print_LDR(Tree *p)//中序遍历
{ if §{ print_LDR(p->Left);
printf(”%d “,p->data);
print_LDR(p->Right); }}
void print_LRD(Tree *p)//后序遍历
{ if§{ print_LRD(p->Left);
print_LRD(p->Right);
printf(”%d “,p->data); }}
int main(){ Bitree p; create_Link(&p);
printf(“前序遍历: \n”); print_DLR§; printf(”\n"); printf(“中序遍历: \n”); print_LDR§; printf("\n"); printf(“后序遍历: \n”); print_LRD§; return 0;}
//代码有些地方乱码和缺少,以截图为准
代码可能有些乱码,本人第一次编写,还请各位包含

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值