單鏈表元素按插入方法排序實現
阿新 • • 發佈:2019-02-13
typedef struct node { int data; //資料域 struct node *next; //指標域 next }linklist,*link; void Insertsort(link L) //插入排序函式 { link p,q,ru; p=L->next; //p指標指向L的第一個節點 L->next=NULL; // 置空連結串列,然後將原連結串列中的節點逐個插入有序表中 while(p!=NULL) //p工作指標直到原連結串列末尾 { r=L; q=L->next; //q指向原連結串列的節點 while(q!=NULL&&q->data<=p->data) //q工作指標直到連結串列末尾,並且q的資料要<=p的資料 { r=q; //r指標指向q q=q->next; //q工作指標繼續往後移動 } u=p->next; //u指標指向待插入的節點 p->next=r->next; //然後將p連線到有序表中 r->next=p; //連線p到有序表中 p=u; //p工作指標指向u } }