Как проверить, заполнен ли связанный список / не хватает памяти компьютера внутри функции добавления - PullRequest
0 голосов
/ 12 октября 2018

Я создаю двусвязный список.У меня есть работающая программа, но мне нужно проверить, не заполнен ли список, прежде чем добавлять новые узлыЯ знаю, как реализовать функцию isFull ().Но для этого проекта, над которым я работаю, мне не разрешено использовать функцию isFull ().

Я пытался реализовать то, что делал ранее, чтобы проверить, заполнен ли список:

try
{
    Node* n = new Node;
    delete(n);
    return false;
}
catch (bad_alloc)
{
    return true;
}

И это работает, когда оно находится в своей собственной функции isFull ().И я бы вызвал isFull () в моей функции добавления.Но так как я не могу создать isFull, как бы мне реализовать этот код и объединить его с моей функцией добавления?

Это моя текущая функция добавления:

void MyDLL::append(int i)
{
Node *n = new Node{ i, nullptr, nullptr };
if (head == nullptr)
{
    head = n;
    tail = n;
}
else
{
    n->prev = tail;
    tail->next = n;
    tail = n;
}
}
...