在论坛上寻找半天,本人实在是看不懂,想发帖问下各位大牛,C语言链表如何排序,我已经创建好了链表,但是如何排序将链表排序(对于排序来说,我可以将数组排序,选择,插入,冒泡都行,但是链表是真心看不懂)。求大牛帮忙解答
#include<stdio.h>
#include<stdlib.h>
struct node
{
int snum, grad;
struct node*next;
};
int main(void)
{
struct node*p=NULL, *q=NULL, *t=NULL, *head,*p1=NULL,*q1=NULL,*head1;
head = NULL;
int n, m,num1,num2;
scanf_s("%d%d", &n,&m);
for (int i = 0; i < n; i++)
{
scanf_s("%d%d", &num1,&num2);
p = (struct node*)malloc(sizeof(struct node));
p->snum = num1; p->grad = num2;
p->next = NULL;
if (head == NULL)
head = p;
else
q->next = p;
q = p;
}
head1 = NULL;
for (int j = 0; j < m; j++)
{
scanf_s("%d%d", &num1, &num2);
p1 = (struct node*)malloc(sizeof(struct node));
p1->snum = num1; p1->grad = num2;
p1->next = NULL;
if (head1 == NULL)
head1 = p1;
else
q1->next = p1;
q1 = p1;
}
p->next = head1;
t = head;
printf("\n\n\n\n");
while (t != NULL)
{
printf("%d %d\n", t->snum, t->grad);
t = t->next;
}
return 0;
}