数据结构实验之链表六:有序链表的建立
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。
输入
第一行输入整数个数N;
第二行输入N个无序的整数。
第二行输入N个无序的整数。
输出
依次输出有序链表的结点值。
示例输入
6 33 6 22 9 44 5
示例输出
5 6 9 22 33 44
提示
不得使用数组!
来源
#include<bits/stdc++.h>
using namespace std;
typedef struct node
{
int data;
struct node *next;
}LNode,*LinkList;
LinkList CreatList(int n)
{
LNode *head,*p1,*p2,*p3;
head=new LNode;
head->next=NULL;
for(int i=0;i<n;i++)
{
p1=new LNode;
cin>>p1->data;
p1->next=NULL;
p2=head;
p3=head->next;
while(p3!=NULL&&p1->data>p3->data)
{
p3=p3->next;
p2=p2->next;
}
p1->next=p3;
p2->next=p1;
}
return head;
}
void DisplayList(LinkList head)
{
LNode *p;
p=head->next;
while(p!=NULL)
{
p->next==NULL?cout<<p->data<<endl:cout<<p->data<<" ";
p=p->next;
}
}
int main ()
{
int n,i;
cin>>n;
LNode *head;
head=CreatList(n);
DisplayList(head);
return 0;
}