C语言数据结构 二叉树

二叉树 顾名思义,它的每一个节点都有两个分支,A的两个分支是B,C。:--------:D的两个分支是 NULL,NULL。

二叉树的前序是->: 根,左边,右边。以上图为例,前序的结果为->:a,b,d,NULL,NULL,NULL,c,e,NULL,NULL,f,NULL,NULL,

中序是->:左边,根,右边。以上图为例,中序的结果为->:NULL,d,NULL,b,NULL,a,NULL,e,NULL,c,NULL,f,NULL,

后续是->左边,右边,根。以上图为例,后续的结果为->:NULL,NULL,d,NULL,b,NULL,NULL,e,NULL,NULL,f,c,a,

#include<stdio.h>
#define wanneng char//定义一个类型,这样以后更改类型时 只需修改这一个,万能类型。
#include<stdlib.h>

typedef struct erchashu //创建一个二叉树结构体
{
    erchashu* zuo;
	erchashu* you;
	wanneng data;

}erchashu;

void qian(erchashu* p) //求前序的递归函数,只要更改递归函数内的顺序 就能变成求中序 以及求后续。
{
	if (!p)
	{
		printf("NULL,");
		return;
	}
	qian(p->zuo);
	qian(p->you);
	printf("%c,", p->data);
}

int main()
{
	erchashu* A=(erchashu*)malloc(sizeof(erchashu));//创建一个 静态临时的 二叉树
	A->data = 'a';
	A->zuo = NULL;
	A->you = NULL;

	erchashu* B = (erchashu*)malloc(sizeof(erchashu));
	B->data = 'b';
	B->zuo = NULL;
	B->you = NULL;

	erchashu* C = (erchashu*)malloc(sizeof(erchashu));
	C->data = 'c';
	C->zuo = NULL;
	C->you = NULL;

	erchashu* D = (erchashu*)malloc(sizeof(erchashu));
	D->data = 'd';
	D->zuo = NULL;
	D->you = NULL;

	erchashu* E = (erchashu*)malloc(sizeof(erchashu));
	E->data = 'e';
	E->zuo = NULL;
	E->you = NULL;

	erchashu* F = (erchashu*)malloc(sizeof(erchashu));
	F->data = 'f';
	F->zuo = NULL;
	F->you = NULL;

	A->zuo = B;
	A->you = C;

	B->zuo = D;
	
	C->zuo = E;
	C->you = F;

	qian(A);

	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值