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

来源:互联网 发布:数据库访问代码生成 编辑:程序博客网 时间:2024/05/16 12:06

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

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

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

输入

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

输出

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

示例输入

633 6 22 9 44 5

示例输出

5 6 9 22 33 44


#include<stdio.h>#include<malloc.h>struct node{    int number;    struct node* next;};struct node* Corder(int num){    struct node* head,*p,*q,*k;    head=(struct node*)malloc(sizeof(struct node));    head->next=NULL;    for(int i=0;i<num;i++)    {        k=(struct node*)malloc(sizeof(struct node));        scanf("%d",&k->number);        k->next=NULL;        p=head;        while(p)        {            q=p->next;            if(q==NULL||k->number<=q->number)            {                p->next=k;                k->next=q;                break;            }            else            {                p=p->next;            }        }    }    return head;};void shuchu(struct node*head){    struct node *p;    p=head->next;    while(p)    {        if(p==head->next)            printf("%d",p->number);        else            printf(" %d",p->number);        p=p->next;    }    printf("\n");}int main(){    int num;    struct node *head;    scanf("%d",&num);    head=Corder(num);    shuchu(head);}

0 0