#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;
}
选择排序的链表实现
最新推荐文章于 2023-07-17 21:58:36 发布