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

来源:互联网 发布:淘宝怎样免费开店 编辑:程序博客网 时间:2024/06/07 03:52

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

Time Limit: 1000MSMemory Limit: 65536KB

Problem Description

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

Input

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

Output

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

Example Input

633 6 22 9 44 5

Example Output

5 6 9 22 33 44

Hint

不得使用数组!
#include<stdio.h>#include<stdlib.h>#include<string.h>struct node{    int data;    struct node *next;};struct node* f(int n){    int i;    struct node *head,*p,*q;    head=(struct node *)malloc(sizeof(struct node));    head->next=NULL;    q=head;    for(i=1; i<=n; i++)    {        p=(struct node *)malloc(sizeof(struct node));        scanf("%d",&p->data);        p->next=NULL;        q->next=p;        q=p;    }    q=head->next;    return head;};void sort(struct node *head,int n){    int t;    struct node *p,*q;    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;            }        }    }}void show(struct node *head){    struct node *p;    p=head->next;    while(p)    {        if(p->next)        {            printf("%d ",p->data);        }        else        {            printf("%d",p->data);        }        p=p->next;    }}void main(){    int n;    struct node *head;    scanf("%d",&n);    head=f(n);    sort(head,n);    show(head);}



1 0
原创粉丝点击