Problem1874--【排序】8-1 基于链表的简单选择排序

1874: 【排序】8-1 基于链表的简单选择排序

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 1  Solved: 1
[Submit] [Status] [Web Board] [Creator:]

Description

试以单链表为存储结构,实现简单选择排序算法。

Input

多组数据,每组数据两行。第一行为序列的长度n,第二行为序列的n个元素(元素之间用空格分隔,元素都为正整数)。当n等于0时,输入结束。

Output

每组数据输出一行,为从小到大排序后的序列。每两个元素之间用空格隔开。

Sample Input Copy

5
4 5 3 2 9
6
1 3 5 7 9 2
0

Sample Output Copy

2 3 4 5 9
1 2 3 5 7 9

HINT

#include<iostream>
using namespace std;
typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*linkList;
void CreateList_R(linkList &L,int n)
{//后插法创建单链表
    L=new LNode;
    L->next=NULL;
    linkList r=L;
    for(int i=0;i<n;i++)
    {
        linkList p=new LNode;
        cin>>p->data;
        p->next=NULL;
        r->next=p;
        r=p;
    }
}
void PrintList(linkList L)
{//打印依次输出链表中的数据
    linkList p=L->next;
    while(p){
        if(p->next!=NULL) cout<<p->data<<" ";
        else cout<<p->data;
        p=p->next;
    }
    cout<<endl;
}
void SelectSort(linkList &L)
{//基于单链表的简单选择排序
/**************begin************/
 

 
   
    /**************end************/
}
int main()
{
    int n;
    while(cin>>n)
    {
        if(n==0) break;
        linkList L;
        CreateList_R(L,n);        //后插法创建单链表
        SelectSort(L);           //基于单链表的简单选择排序
        PrintList(L);           //打印依次输出链表中的数据
    }
    return 0;
}

Source/Category