c - 从列表中删除对象

标签 c generic-list

我的列表项:

typdef struct sNode
{
   struct sNode* next;
   myData data;
} tNode;

我希望实现以下 API:

bool removeNode(tNode* node)
{
... // need to fix list and free node
}

问题是我没有要修改的前一个元素。 有什么魔法可以解决吗?

最佳答案

没有。您将不得不从列表的开头遍历以找到前一个节点,这是非常低效的。这是单链表的问题。如果您需要速度快,请使用双向链表(每个节点都有一个next 和一个previous 指针)。

关于c - 从列表中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5995015/

相关文章:

c - 任意大小的矩形矩阵的运行时高效转置

c - 有什么办法可以限制在 switch 语句中可以作为 case 的值吗?

c# - List<T> 上的 LINQ 查询根据最小值获取 List<U>

arrays - Powershell阵列:何时使用它们;什么时候避免他们和使用它们的问题

c - 什么是 Rss 信息?不是 Rss xml 提要

c - 为什么当我减小窗口大小时发送 WM_ERASEBKGND 消息?

c - 我的 X11 代码有什么问题?

c# - 将通用 IList<CustomType> 转换为数组?

c# - C#中如何将DataTable转换为对象类型List

object - 如何在 .proto 文件中使用 Protocol Buffer 处理泛型类型对象?