使用C语言实现,直接上代码
//
// main.c
// LinkTest
//
// Created by 朱坤 on 16/3/20.
// Copyright © 2016年 zhukun. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Node* Link;
struct Node{
int item;
Link next;
}heada, headb;
int main(int argc, const char * argv[]) {
int n;
scanf("%d", &n);
Link p, q, temp;
p = &heada;
while(n--){
Link t = malloc(sizeof(t));
scanf("%d", &(t->item));
t->next = NULL;
p->next = t;
p = t;
}
p = &heada;
printf("原序列为:");
while(p->next!=NULL){
printf("%d ",p->next->item);
p = p->next;
}
for(p = heada.next; p != NULL; p = temp){
temp = p->next;
for(q = &headb; q->next != NULL; q=q->next){
if(p->item < q->next->item) break;
}
p->next = q->next;
q->next = p;
}
printf("\n排序后为:");
p = &headb;
while(p->next!=NULL){
printf("%d ",p->next->item);
p = p->next;
}
}