注册 登录
编程论坛 C语言论坛

求大佬帮帮C语言链表排序的问题

起因 发布于 2022-05-22 17:46, 1036 次点击
求助一个每个节点带有3个数据的链表怎么进行快速排序
头节点  1,0,0    第二个节点  5,3,1  第三个节点 6,7,8   依次类推
不算头节点  剩余的节点进行从到小的快速排序法
我现在对不同节点之间的数据大小比较不会
void LKSort(Node* Left, Node* Rigth)//Left 是头节点,Right是尾指针
{
    int count = 1;//计数
    int temp;//交换数据
        if (Left != Rigth)
        {
            int Number1 = Left->next->item1;//基准
            Node* p = Left->next;
            Node* q = Left->next->next;
            while (q != Rigth)
            {
                if (q->item1 > Number1)
                {
                    temp = p->item1;
                    p->item1 = q->item1;
                    q->item1 = temp;
                }
                if (q->item2 > Number1)
                {
                    temp = p->item2;
                    p->item2 = q->item2;
                    q->item2 = temp;
                }
                if (q->item3 > Number1)
                {
                    temp = p->item3;
                    p->item3 = q->item3;
                    q->item3 = temp;
                }
                q = q->next;
            }
            LKSort(Left, p);
            LKSort(p->next, Rigth);
        }
}
1 回复
#2
wp2319572022-05-22 22:23
回复 楼主 起因
根据哪个数据进行排序啊
1