c - 如何从链表中删除重复的奇数?

标签 c data-structures linked-list

要求/约束​​:

  1. 只删除重复项
  2. 保留一份
  3. 列表最初没有排序

这在 C 中如何实现? (算法和/或代码将不胜感激!)

最佳答案

如果列表很长并且您想要合理的性能并且您可以分配额外的 log(n) 内存,您可以使用 qsort 或归并排序对 nlog(n) 进行排序:

http://swiss-knife.blogspot.com/2010/11/sorting.html

然后可以去掉n中的重复项(总数是:nlog(n) + n)

如果你的列表非常小,你可以像 jswolf19 建议的那样做,你会得到:n(n-1)/2 最差。

关于c - 如何从链表中删除重复的奇数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4976765/

相关文章:

c - 局部变量转换为全局变量?

c++ - 这看起来与旧问题相似但不同。给定一个大小为 n 的数组(允许重复的数字),找到缺失的 2 个数字

java - 在Java中如何表示要在内存中编辑的文本文件

java - 实现一个基于 Arraylist 的 Bag/Multiset——坚持使用泛型

sql-server - 从另一台服务器(链接服务器)获取@@Identity

c - 删除链接结构的值

c - 有没有更好的方法来确保矩阵之外的元素不被访问?

c - 让用户输入名称但使用文件流 *fp

c - 在 C 程序中使用外部库

c - 链表搜索功能