#37983: 針對C malloc的部分


haochiwu (教授加博士先生)

學校 : 國立臺灣師範大學
編號 : 106834
來源 : [203.77.60.24]
最後登入時間 :
2023-10-21 23:26:15
j124. 3. 石窟探險 -- 2022年10月APCS | From: [203.77.60.24] | 發表日期 : 2023-10-21 23:50

請食用這篇https://www.programiz.com/dsa/binary-tree
這題關鍵在遞迴和你如何創造、使用二元樹
我就講如何創造二元樹

tip:每次Node(樹節點)創立時,請務必使用malloc(sizeof(Node)),包含root
不然你會死翹翹,每次輸出都不對(pointer會直接跑掉)

先寫Node的結構:

typedef struct BTree{
    long val;
    struct BTree* left;
    struct BTree* mid;
    struct BTree* right;
}Node;

首先,請創造一個root:
Node* root = malloc(sizeof(Node));
root = inputtoNode(); //這邊的inputtoNode是自建立函數,每次呼叫時將會scanf一次,並將輸入的值創建Node

創建Node同時請務必先判定(val % 2 ?),之後初始化就會出現分歧了
這邊可以寫成node->left/mid/right = inputtoNode(),讓他再一次跑遞迴即可

差不多熟了你就可以創立自己的BTree了👍

 
ZeroJudge Forum