首页 > 其他 > 详细

二叉树构造

时间:2019-12-18 20:55:33      阅读:93      评论:0      收藏:0      [点我收藏+]

先序 中序

BiTNode* CreateBT1(char* pre, char* in, int n)
{
	BiTNode* s;
	char* p;
	int k;
	if (n <= 0)return NULL;
	s = (BiTNode*)malloc(sizeof(BiTNode));
	s->data = *pre;
	for (p = in; p < in + n; p++)
	{
		if (*p == *pre)
			break;
	}
	k = p - in;
	s->lchild = CreateBT1(pre + 1, in, k);
	s->rchild = CreateBT1(pre + k + 1, p + 1, n - k - 1);
	return s;
}

  中序,后序

BTNode* CreateBT2(char* post, char* in, int n)
{
	BTNode* s;
	char* p, r;
	int k;
	if (n == 0)return NULL;
	r = *(post + n - 1);
	s = (BTNode*)malloc(sizeof(BTNode));
	s->data = r;
	for (p = in; p < in + n; p++)
	{
		if (*p == r)
			break;
	}
	k = p - in;
	s->lchild = CreateBT2(post, in, k);
	s->rchild = CreateBT2(post + k, p+1, n - k - 1);
	return s;
}

  

二叉树构造

原文:https://www.cnblogs.com/KIROsola/p/12061689.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!