我正在创建一个双向链接列表。我的程序正在运行,但是在附加任何新节点之前,我需要检查列表是否已满。 我知道如何实现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;
}
}