樹4-樹的確定與#號建立

HIK4RU44發表於2024-04-20

樹4-樹的確定與#號建立


只有中序遍歷不能確定一個樹


確定樹的方法

中序遍歷確定左右區域,而先序和後序確定實際位置


二叉樹的#建立

二叉樹結點

typedef struct BinaryNode{
    char ch;
    struct BinaryNode *lChild;
    struct BinaryNode *rChild;
} BinaryNode;

二叉樹遍歷

void Recursion(BinaryNode *root){
    if(root==NULL) return;
    cout << root->ch;
    Recursion(root->lChild);
    Recursion(root->rChild);
}

建立樹

BinaryNode* CreateBinaryTree(){
    //清空緩衝區
    fflush(stdin);
    char ch;
    cout << "輸入ch:" ;
    cin >> ch;
    //當ch為空時, 退出建立
    BinaryNode *node;
    // BinaryNode  *lChild, *rChild;

    if(ch=='#'){ //#表示當前結點為NULL
        node = NULL; 
    }else{
        // lChild = CreateBinaryTree();
        // rChild = CreateBinaryTree();
        node = (BinaryNode*)malloc(sizeof(BinaryNode));
        node->ch = ch;
        node->lChild = CreateBinaryTree();
        node->rChild = CreateBinaryTree();
    }

    return node;
}

測試

int main(void){
    //建立樹
    BinaryNode *root = CreateBinaryTree();
    //遞迴遍歷
    Recursion(root);
    cout << endl;
    
    // ABCD##P###QH###

    system("pause");
    return 0;
}

相關文章