2121 数据结构实验之链表六:有序链表的建立 【纯插排】

来源:互联网 发布:gps端口检测工具下载 编辑:程序博客网 时间:2024/06/02 04:53

数据结构实验之链表六:有序链表的建立

Time Limit: 1000MS Memory limit: 65536K

题目描述

输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。

输入

第一行输入整数个数N;
第二行输入N个无序的整数。

输出

依次输出有序链表的结点值。

示例输入

633 6 22 9 44 5

示例输出

5 6 9 22 33 44

提示

 

#include <stdio.h>struct n{    int num;    struct n *next;};int main(){    int sn,t;    n *head = new n;    n *tail,*tmp;    head->next = NULL;    tail = head;    scanf ("%d",&sn);    if (sn != 0)    {        scanf ("%d",&head->num);        t = sn - 1;        while (t--)        {            tmp = new n;            scanf ("%d",&tmp->num);            tmp->next = NULL;            n *p = head;            while (p->next != NULL && p->next->num < tmp->num)            {                p = p->next;            }            if (p == head && tmp->num < head->num)            {                tmp->next = head;                head = tmp;            }else            {                tmp->next = p->next;                p->next = tmp;            }        }    }    tmp = head;    while (tmp != NULL)    {        printf ("%d",tmp->num);        if (tmp->next != NULL)            printf (" ");        else            printf ("\n");        tmp = tmp->next;    }    return 0;}


 

0 0