0

スキップ リストのデータ構造を作成しようとしています。以下は、Node.js 用にこれまでに作成したコードのスナップショットです。

    #define MAX_HEIGHT = 20;
    struct Node {
         int i;
         Node *nodes[20];
     }

この場合にベクトルを使用すると、サイズを動的に変更できるため、はるかに優れていることを理解しています。配列を使用したい場合、どこに行けばいいのだろうと思っていました。

私は C++ を初めて使用するので、後で配列のサイズを割り当てることができるかどうか疑問に思っています。たとえば、サイズ 2 のポインター配列のみを持つ別のノードを追加したいとします。

4

1 に答える 1

0

作成されるノードのコンストラクターに高さを渡すことができます。コンストラクター内では、ポインターの配列を動的に割り当てるNodeだけで、デストラクターでそのメモリを解放することを忘れないでください。

struct Node {
    int i;
    int height;
    Node* *nodes;
    Node(int h) {
        nodes = new Node*[h];
        height = h;
    }
    ~Node() {
        delete [] nodes;
    }
};
于 2016-10-14T06:53:31.687 に答える