链表中的简单冗余

时间:2018-03-06 12:00:45

标签: c algorithm linked-list

所以我有以下结构:

typedef struct listElement
{
   element value;
   struct listElement;
} listElement, *List;

元素不是已知类型,这意味着我不确切知道我正在处理什么数据类型,不管它们是整数还是浮点数或字符串。 目标是创建一个函数,使多余的listElements元素超过两次(意味着一个值只能出现0次,一次或两次,而不是更多) 我已经创建了一个使用bruteforce的函数,带有嵌套循环,但这是一个集群****,因为我正在处理列表中的大量元素。 (浏览每个元素并将其与列表中的其余元素进行比较) 我想知道是否有更好的解决方案,使用更少的isntructions并且复杂性更低。

1 个答案:

答案 0 :(得分:2)

您可以使用哈希表并将元素映射到其计数。

如果hashTable [element](此特定元素的计数)返回2,则删除当前元素。