遞歸法創建一棵樹


1.在這里給出結構體信息:

typedef struct tree {
struct tree   *lchild;    //左孩子節點
struct tree rchild;    //右孩子節點
char data;//數據域
}Tree,
Bitree;
在圖紙上畫出自己所要創建的二叉樹,這里是用先序遍歷的方法來創建一顆二叉樹:

2.空節點用#代替,這里給出一個二叉樹的輸入例子:

ABD##E##C##

3.下面是創建這棵樹的代碼:

Bitree CreateBitree(Bitree T)//先序創建一顆二叉樹
{
char  e;
scanf_s("%c", &e);
fflush(stdin);
if (e != '#')     //判斷當前輸入的字符
{

T = (Bitree)malloc(sizeof(Tree)); //分配存貯空間
T->data = e;
T->lchild = NULL;
T->rchild = NULL;
T->lchild = CreateBitree(T->lchild); //遞歸創建左孩子節點值
T->rchild = CreateBitree(T->rchild);   //遞歸創建右孩子節點值
}
return T;
}
創建完之后,你就可以用任何一種遍歷方式來遍歷它了,實現二叉樹的算法也就有了前提條件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM