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;
}
創建完之后,你就可以用任何一種遍歷方式來遍歷它了,實現二叉樹的算法也就有了前提條件。