如何检查链结列表是否已满/计算机是否在附加函数内的内存不足

时间:2018-10-11 23:52:57

标签: c++ function linked-list append out-of-memory

我正在创建一个双向链接列表。我的程序正在运行,但是在附加任何新节点之前,我需要检查列表是否已满。 我知道如何实现isFull()函数。但是对于我正在从事的这个项目,不允许使用isFull()函数。

我尝试执行之前做过的事情,以检查列表是否已满:

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

当它在自己的isFull()函数中时,它确实起作用。我会在我的append函数中调用isFull()。但是由于无法创建isFull,我将如何实现该代码并将其合并到我的append函数中?

这是我当前的附加函数:

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;
}
}

0 个答案:

没有答案