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

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

2016-09-12 20:02 489 查看

数据结构实验之链表六:有序链表的建立
Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic

Problem Description

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

Input

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

Output

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

Example Input

6
33 6 22 9 44 5

Example Output

5 6 9 22 33 44
#include <bits/stdc++.h>

using namespace std;

struct node
{
int data;
node *next;
};

struct node *creat(int n)
{
node *head, *tail, *p;
head = new node;
head->next = NULL;
tail = head;
for(int i = 0; i < n; i++)
{
p = new node;
cin >> p->data;
p->next = NULL;
tail->next = p;
tail = p;
}
return (head);
}

void Sort(node *head)
{
node *p, *q;
for(p = head->next; p; p=p->next)
{
for(q = p->next; q; q=q->next)
{
if(p->data > q->data)
{
int t = p->data;
p->data = q->data;
q->data = t;
}
}
}
}

void display(node *head)
{
node *p;
for(p = head->next; p; p = p->next)
{
if(p->next)
cout << p->data << " ";
else
cout << p->data << endl;
}
}

int main()
{
int n;
node *head;
cin >> n;
head = creat(n);
Sort(head);
display(head);
return 0;
}

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