typedef struct node{
ElemType data;
struct node* next;
}Single_List;
//直接插入排序
Single_List* Insert_Sort(Single_List* list)
{
//这里的单链表是带头结点的单链表
Single_List* cur,*pre,*p;
cur = list->next->next; //指向第二个结点
list->next->next = NULL;
while(cur){
p = cur->next; //保存当前结点的下一个结点的指针
pre = list;
//找到合适的位置
while(pre->next && pre->next->data < cur->data){
pre = pre->next;
}
//进行插入操作
cur->next = pre->next;
pre->next = cur;
cur = p;
}
return list;
}