选择排序的链表实现
来源:互联网 发布: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;}