This question already has answers here:
How do I sort a linked list of structures by one of the fields?
                                
                                    (4个答案)
                                
                        
                                6年前关闭。
            
                    
我有此结构的列表,我想根据值对列表进行排序
draw_number的值,并且列表的指针前面指向第一个结构
列表的最后一个指针和指向列表最后一个结构的指针。我发现了许多用于对列表进行排序的代码,但是我无法完成我的代码。结构是:

typedef struct itm{
    int draw_number;
    char date[11];
    char temi[6];
    struct itm *next;
}item;

最佳答案

最简单的将是气泡排序。

item* sort(item *start){
    item *node1,*node2;
    int temp;
    for(node1 = start; node1!=NULL;node1=node1->next){
        for(node2 = start; node2!=NULL;node2=node2->next){
            if(node2->draw_number > node1->draw_number){
                temp = node1->draw_number;
                node1->draw_number = node2->draw_number;
                node2->draw_number = temp;
            }
        }
    }
return start;
}

关于c - 在c中分类链表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17629898/

10-11 21:46