选择排序的链表实现

来源:互联网 发布:mac两个窗口 编辑:程序博客网 时间:2024/06/05 07:08
#include<iostream> using namespace std;typedef struct Node{   double data;   struct Node *next;}*LinkList,LinkNode;void SelectSort(LinkList &L)      //同样的错误犯了两次啊 借鉴啊 {     LinkNode *h=L,*p,*q,*r,*s;     L=NULL;     while(h!=NULL)     {        p=s=h;        q=r=NULL;        while(p!=NULL)        {            if(p->data>s->data)            {                s=p;              r=q;            }             q=p;            p=p->next;                      }        if(s==h)          h=h->next;        else        {            r->next=s->next;        }        s->next=L;        L=s;     }}int main() {   LinkNode list[10] ;LinkNode *L = &list[0];    list[0].data = 3.4;list[1].data = 2.2;list[2].data = 4.5;list[3].data = 1.3;list[4].data = 5.4;list[5].data = 10;list[6].data = 8.3;list[7].data = 6.4;list[8].data = 7.7;list[9].data = 9.9;list[0].next = &list[1];list[1].next = &list[2];list[2].next = &list[3];list[3].next = &list[4];list[4].next = &list[5];list[5].next = &list[6];list[6].next = &list[7];list[7].next = &list[8];list[8].next = &list[9];list[9].next = NULL;SelectSort(L);LinkList lst = L;while(lst!=NULL){   cout<<lst->data<<endl;lst=lst->next;}return 0;}