您的位置:首页 > 理论基础 > 数据结构算法

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

2014-01-15 10:07 232 查看


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


Time Limit: 1000MS Memory limit: 65536K

题目描述

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

输入

第一行输入整数个数N;

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

输出

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

示例输入

6
33 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;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: