2

バイナリ ツリーの contains 関数を作成しようとしています。

関数は次のようになります。

    bool contains(bt_node* top, int data) {
    if (top == NULL) return false;
    else {
        if (data == top->data) return true;
        else if (data < top->data) contains(top->left, data);
        else if (data > top->data) contains(top->right, data);
    }
}

関数は、実際にツリーにある値に対して false を返しています。誰でも助けることができますか?

ありがとう、

マックス

4

2 に答える 2

0

ただし、もう少しうまくやれたかもしれません:

bool contains(bt_node* top, int data) {
    if (top == NULL) return false;
    if (data == top->data) return true;
    if (data < top->data)  return contains(top->left, data);    
    return contains(top->right, data);
}
于 2016-01-21T14:49:40.393 に答える