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

来源:互联网 发布:淘宝斗鱼 编辑:程序博客网 时间:2024/06/03 16:57

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<stdio.h>#include<stdlib.h>struct node{    int data;    struct node*next;};struct node*creatnode(int n){    int i;    struct node*p,*head,*tail;    head = (struct node*)malloc(sizeof(struct node));    head->next = NULL;    tail = head;    for(i = 1;i<=n;i++)    {        p = (struct node*)malloc(sizeof(struct node));        p->next = NULL;        scanf("%d",&p->data);        tail->next = p;        tail = p;    }    return head;};int main(){    int n ,t;    struct node*head,*p,*q;    scanf("%d",&n);    head = creatnode(n);    for(p = head->next;p!=NULL;p = p->next)    {        for(q = p->next;q!=NULL;q=q->next)        {            if(p->data > q->data)            {                t = p->data;                p->data = q->data;                q->data = t;            }        }    }    p = head->next;    while(p)    {        if(p->next!=NULL)            printf("%d ",p->data);        else printf("%d\n",p->data);        p = p->next;    }    return 0;}
阅读全文
0 0
原创粉丝点击