二叉树的创建。
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>