我有一个C结构,其中包含一个人的联系信息,例如姓名,电话号码等。“联系”结构包含在链接列表中。我需要以一种方式插入节点,使链表按字母(升序)顺序排序。
C中是否有可以调用的内置排序功能?或者我是否必须编写自己的排序功能?如果有内置函数,我可以举例说明我如何在链表中的结构上调用它吗?
答案 0 :(得分:3)
“列表”没有标准的排序方法。最接近的是qsort
(它确实可以对用户定义的对象进行排序),但它只适用于连续范围(数组等)。
您可能必须实现自己的排序过程或使用数组而不是列表。
答案 1 :(得分:0)
以下是执行插入排序链接列表的代码示例。这不是适合您的剪切和粘贴,但会告诉您在该类型的插入中会发生什么:
http://www.c.happycodings.com/Sorting_Searching/code8.html
专注于“插入()”调用。我没有编译这段代码来测试它,但我读了它,看起来对我来说是正确的。它显示了如何搜索列表和指针调整。您应该能够从此代码中解决您的问题。