структуры данных — реализация узла списка пропусков в переполнении стека

Я ищу, чтобы создать структуру данных Skip List. Вот снимок кода, который у меня есть для Node.

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

Я понимаю, что если бы я использовал вектор в этом случае, это было бы намного лучше, поскольку вы можете динамически изменять его размер. Мне было интересно, куда бы я пошел, если бы я хотел использовать массивы.

Я новичок в C ++, поэтому мне интересно, возможно ли назначить размер массива на более позднем этапе. Скажем, я хотел добавить еще один узел, который имеет только массив указателей размера 2.

0

Решение

Вы можете передать высоту конструктору создаваемого узла, внутри конструктора, который вы только что динамически выделить массив указателей Node, и не забудьте освободить эту память в деструкторе:

struct Node {
int i;
int height;
Node* *nodes;
Node(int h) {
nodes = new Node*[h];
height = h;
}
~Node() {
delete [] nodes;
}
};
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]