链表查找函数C++; 您如何在非模板化的C++链接列表中实现find函数?< /p>

链表查找函数C++; 您如何在非模板化的C++链接列表中实现find函数?< /p>,c++,C++,删除功能的实现方式如下: bool LinkedList::remove(Node* n) { Node *temp = front, *prev = 0; for(int i = 0;i < size; i++) { if (temp == n) { if (temp == front) { fr

删除功能的实现方式如下:

 bool LinkedList::remove(Node* n)
 {
      Node *temp = front, *prev = 0;

      for(int i = 0;i < size; i++)
      {
           if (temp == n) 
           {
                if (temp == front)
                {
                     front = n->next;
                } 
                else 
                {
                     prev->next = temp->next;
                }

               delete temp;
               size --;
               return true;
          }
          prev = temp;
          temp = temp->next;
     }
     return false;
}
bool链接列表::删除(节点*n)
{
节点*temp=front,*prev=0;
对于(int i=0;i下一步;
} 
其他的
{
上一个->下一个=临时->下一个;
}
删除临时文件;
大小--;
返回true;
}
prev=温度;
温度=温度->下一步;
}
返回false;
}

这里有一个提示:
remove()
函数已经完成了
find()
需要做的几乎所有事情。你只需要弄清楚哪些部分要保留,哪些部分要丢弃。您需要添加的内容将是最少的,如果有的话。它将取决于
find()
的API,您没有指定该API。

逐个节点浏览列表,并检查您所在的节点是否与您要查找的节点相比较<代码>如果(当前==tofind)中断或其他我不会。。。我会使用
std::list
(如果我真的必须使用list)和
std::find
。remove函数与find函数有什么关系?find函数的参数是什么?删除函数的节点*?或者是要与节点的值进行比较的值?甚至是一个谓词函数?为什么这么长的删除。。。?至少ad检查节点是否仅在调试时位于列表中。。。使用std::list。。。它将更快…而不是“删除临时”执行“返回临时”。找出剩下的。。。哦,您将遇到“front=…”的问题。