我尝试搜索答案,但似乎找不到与我的问题相匹配的内容。我正在为学校做一个模板链接列表,但是遇到了很多错误。目前我只需要帮助解决其中一个问题。我应该将一个元素附加到一个链接列表的末尾,但是我们得到以下错误:
append(ListNode)
起初,我想:“好的,创建一个新节点,在末尾插入……”但是我重新阅读了一遍,发现我还需要创建另一个函数来将两个链表连接在一起。因此,我认为我必须在已经存在的元素后面追加链接列表。这样,当我进行拼接时,我可以使用我的追加函数将它们附加在一起。至少……这只是我的想法。
所以,起初,我做了:
template<typename NODETYPE>
bool List<NODETYPE>::append(NODETYPE &value)
{
ListNode<NODETYPE> *newPtr = getNewNode(value); //creates new node
if(isEmpty()) //checks if list is empty
{
firstPtr = lastPtr = newPtr;
return true;
}
else //inserts new node at end of list
{
ListNode<NODETYPE> *tempPtr = lastPtr;
tempPtr->nextPtr=newPtr;
lastPtr = newPtr;
return true;
}
}
但是由于这仅附加一个新节点,我不能使用它。有没有一种方法可以附加已经制作的节点?例如:将另一个链接列表附加到前一个列表上?
我的concat(与我搜索的其他人不同)只使用一个链接列表。之前的链接列表对象调用函数,然后附加一个列表。
concat(&List)
我很困惑,希望能得到帮助,谢谢!
ListNode
必须是在某个地方定义的类或结构体。您需要#include
定义它的头文件。 - Aamirappend
方法的代码位置,并查看是否在那里传递了一个“int”。把它改成“ListNode”。 - Aamirconcat
和append
。您无法在一个函数中完成这两件事,因为它们都会以不同的方式被调用。 - Aamir