改无序单链表为有序

来源:互联网 发布:淘宝促销免费模板 编辑:程序博客网 时间:2024/05/17 07:24

改无序单链表为有序

实现代码:
#include <stdio.h>#include <stdlib.h>typedef struct LinkNode{int data;struct LinkNode *next;} LinkNode;void CreateLinkNode(LinkNode *&L,int a[],int n){LinkNode *p,*L1;int i;L=(LinkNode*)malloc(sizeof(LinkNode));L->next=NULL;L1=L;for(i=0;i<n;++i){p=(LinkNode*)malloc(sizeof(LinkNode));p->data=a[i]; L1->next=p; L1=p;}L1->next=NULL;} void Sort(LinkNode *&L){LinkNode *p,*pre,*q;p=L->next->next;L->next->next=NULL;while(p!=NULL){q=p->next;pre=L;while(pre->next!=NULL&&pre->next->data<p->data){pre=pre->next;}p->next=pre->next;pre->next=p;p=q; }} void Show(LinkNode *&L){int i;while(L->next!=NULL){printf("%d ",L->next->data);L=L->next; }}int main(int argc, char *argv[]){struct LinkNode *L;int a[8]={100,23,3,44,5,6,7,8};CreateLinkNode(L,a,8);Sort(L);Show(L);return 0;}
输出结果:
3 5 6 7 8 23 44 100 请按任意键继续. . .



原创粉丝点击