數據結構之樹的新建

數據結構之樹的新建

樹這一章節,最最具有代表性的就是二叉樹。當然,和樹相關的就有一系列功能的實現。例如,樹的新建,數的賦值,數的遍歷,數的深度的計算等等。下面只談一談數的新建。


下面是一段代碼:

void GreatBiTree(sTree root){      //將樹根的引用傳進來
    int a; 
    printf("請輸入該節點的值\n");
    scanf("%d",&(root->e ) );   //對這個節點自身賦值
    printf("需要創建左孩子請輸入1,否則輸入0\n");
    scanf("%d",&a);
    if(a==1){
        root->left=(sTree)malloc(sizeof(Tree));
    GreatBiTree(root->left);
    } 
    else root->left=NULL; //如果需要創建左孩子那麼把這個節點當作根                                   //再次調用這個方法使用遞歸。
    printf("需要創建右孩子請輸入1,否則輸入0\n");
    scanf("%d",&a);//右孩子同上
    if(a==1) {root->right=(sTree)malloc(sizeof(Tree));
              GreatBiTree(root->right);}
    else root->right=NULL;  
}

數的新建過程可以使用化繁爲簡的思想,將整棵樹化簡到每一個節點。對該節點賦值後,然後將這個節點當作一個根繼續調用此函數,直到葉子節點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章