代码改变世界

二叉树的创建。

2015-05-23 17:37  星星之火✨🔥  阅读(157)  评论(0编辑  收藏  举报

崇尚简约与原始的思维路线:

昨晚保存到Codehelp里的代码,现在粘贴过来,加深对递归的理解。源于此,省去了很多基本操作。

模版代码: 

//还原思维的本质,抛弃条条框框的限制,2013年12月5日 23:52:41,夜深了,睡(=-ω-)zzZZ
# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>

typedef int Status;
typedef char TElemType;

typedef struct BiTNode
{
	TElemType data;
	struct BiTNode * lchild;
	struct BiTNode * rchild;
}BiTNode, * pBiTree;

void InitBiTree(pBiTree * T);
void CreateBiTree(pBiTree * T);

int main(void)
{
	pBiTree T;

	InitBiTree(&T);
	CreateBiTree(&T);

	return 0;
}

void InitBiTree(pBiTree * T)
{
	*T = NULL;
	return ;
}

void CreateBiTree(pBiTree * T)
{
	char ch;
	scanf("%c",&ch);//前序输入以下ABDH#K###E##CFI###G#J## 考虑是否可以后序输入
	//getchar();
	if (ch == '#')
		*T = NULL;
	else 
	{
		*T = (pBiTree)malloc(sizeof(BiTNode));
		(*T)->data = ch;
		CreateBiTree(&(*T)->lchild);//设置断点
		CreateBiTree(&(*T)->rchild);//设置断点
	}//设置断点,同以上三个断点的作用是为了清晰明白的了解递归的过程,通过调试程序而不是调用遍历函数,观察变量ch的值,加深对算法的认识.
	return ;
}</span></span>