数据结构实验之链表六:有序链表的建立
数据结构实验之链表六:有序链表的建立
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。
Input
第一行输入整数个数N;
第二行输入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; }