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

来源:互联网 发布:2016网络小说知乎 编辑:程序博客网 时间:2024/06/10 01:20

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

Time Limit: 1000MS Memory 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

不得使用数组!

Author

 
#include<stdio.h>#include<stdlib.h>struct node{int data;struct node *next;};struct node *creat(struct node *head,int n){int i;struct node *p,*q;q=head;for(i=0;i<n;i++){p=(struct node *)malloc(sizeof(struct node));scanf("%d",&p->data);p->next=q->next;q->next=p;q=p;}return head;}int main(){int i,j,n,m,k,t;struct node *head,*p,*q,*tail;scanf("%d",&n);head=(struct node *)malloc(sizeof(struct node));head->next=NULL;head=creat(head,n);q=head;for(i=0;i<n-1;i++){q=q->next;p=q->next;for(j=i+1;j<n;j++){if(q->data>p->data){t=q->data;q->data=p->data;p->data=t;}p=p->next;}}p=head;p=p->next;i=0;while(p!=NULL){if(i==0)printf("%d",p->data);elseprintf(" %d",p->data);p=p->next;i++;}}

0 0
原创粉丝点击