2

再帰関数でポストオーダー トラバーサルを使用してバイナリ ツリー ノードの割り当てを解除する際に問題が発生しています。

これは私の構造体の一部です.私のツリーデコンストラクターはルートから開始して割り当てを解除します

struct Node {
    Base * data;
    Node * left, * right, *parent;
    static long occupancy;
    long balance;
    long height;

    Node (Base * element) : data (element), left (0), right (0),
        parent (0), balance (0), height(0) {

         occupancy++;
    }


    ~Node (void) {

        deleteNodes();

    }

    void deleteNodes (void) {

        if(height == 0)
            return;

        if(left)
            left->deleteNodes();
        if(right)
            right->deleteNodes();

        if(left)
            delete left;
        if(right)
            delete right;

        delete data;


    }
}
4

2 に答える 2