⑴ 數據結構 如何創建一棵樹,請給出c語言詳細代碼,謝謝
# include <stdio.h>
# include <stdlib.h
typedef struct BiTNode
{
char data;
struct BiTNode * lchild,* rchild;
}BiTNode, *BiTree;
//先序建立二叉樹中的節點
BiTree CreatBiTree()
{
BiTree T;
char ch;
fflush(stdin);
scanf("%c",&ch);
if(ch == '0')
{
return NULL;
}
else
{
T=(BiTNode *)malloc(sizeof(BiTNode));
if(!T)
exit(1);
T->data=ch;
T->lchild = CreatBiTree();
T->rchild = CreatBiTree();
return T;
}
}
void PreTravel(BiTree T)
{
if(T)
{
printf("%c ",T->data);
PreTravel(T->lchild);
PreTravel(T->rchild);
}
}
int main()
{
BiTree T;
printf("先序建立二叉樹結點(『0』表示空):\n");
T = CreatBiTree();
printf("先序遍歷創建的二叉樹:\n");
PreTravel(T);
printf("\n");
return 0;
}
/*
結果:
------------------------
先序建立二叉樹結點(『0』表示空):
a
b
0
0
c
0
0
先序遍歷創建的二叉樹:
a b c
Press any key to continue
------------------------------
*/
⑵ 數據結構 設一棵樹T中邊的集合為{(A,B),(A,C),(A,D),(B,E),(C,
1、畫出該樹 :如下圖左邊所示。然後根據樹的二叉鏈表表示法表示存儲結構如圖右邊所示:
注意這里的指針域為左邊表示第一個孩子*firstchild,右邊表示兄弟*nextsibling