编程要求 根据提示,在右侧编辑器补充代码,完成函数void sort_list(LinkNode *&L),该函数功能是对带头结点的单链表L进行插入排序,使其递增有序。
测试说明 平台会对你编写的代码进行测试:
输入格式 输入包括两行。 第一行为一个整数n。 第二行为空格隔开的n个整数。
输出格式 输出包括两行。 第一行为排序之前的单链表。每个数据后一个空格。 第二行为递增排序之后的单链表。每个数据后一个空格。
样例输入 10 1 3 2 9 0 4 7 6 5 8
样例输出 L: 1 3 2 9 0 4 7 6 5 8 L: 0 1 2 3 4 5 6 7 8 9
#include "linklist.h"
/**
* 单链表L递增(插入)排序
*/
void sort_list(LinkNode *&L)
{
//请在下面编写代码
/******************Begin******************/
int j=0;
LinkNode * p=L,*s;
if (i<=0) return false;
while (j<i-1 && p!=NULL)
{ j++;
p=p->next;
}
if (p==NULL)
return false;
else
{
s=(LinkNode *)malloc(sizeof(LinkNode));
s->data=e;
s->next=p->next;
p->next=s;
return true;
}
/*******************End*******************/
}
int main()
{
LinkNode *L;
// int n = 10;
// ElemType a[] = {1, 3, 2, 9, 0, 4, 7, 6, 5, 8};
int n;
scanf("%d", &n);
int *a = (int*)malloc(sizeof(int) * n);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
CreateListR(L, a, n); //创建单链表
printf("L: "); DispList(L); //输出单链表
sort_list(L); //单链表递增排序
printf("L: "); DispList(L); //输出排序后的单链表
DestroyList(L); //销毁单链表
free(a); //释放数组
return 0;
}