链表排序问题,急急急……
链表排序问题,急急急……
#include <iostream.h>
struct point
{
int data;
point *next;
} *head,*p,*q;
void main()
{
int n;
cin>>n;
if (n==0)
return;
head=new point;
cin>>head->data; //初始A类结点
head->next=NULL;
for (;n>1;n--) //读入后继B类结点并依次放入A中
{
p=new point;
cin>>p->data;
if (p->data<head->data) //如果比头结点小 则让它作为新的头结点
{
p->next=head;
head=p;
}
else
{
q=head;
while (q->next!=NULL&&p->data>q->next->data) //否则 找到它的位置:此时q比p小 但q的下一个结点比p大
q=q->next;
p->next=q->next; //将p插入链表中
q->next=p;
}
}
p=head; //输出
while (p!=NULL)
{
cout<<p->data<<' ';
p=p->next;
}
cout<<endl;
}
#include <iostream.h>
struct point
{
int data;
point *next;
} *head,*p,*q;
void main()
{
int n;
cin>>n;
if (n==0)
return;
head=new point;
cin>>head->data; //初始A类结点
head->next=NULL;
for (;n>1;n--) //读入后继B类结点并依次放入A中
{
p=new point;
cin>>p->data;
if (p->data<head->data) //如果比头结点小 则让它作为新的头结点
{
p->next=head;
head=p;
}
else
{
q=head;
while (q->next!=NULL&&p->data>q->next->data) //否则 找到它的位置:此时q比p小 但q的下一个结点比p大
q=q->next;
p->next=q->next; //将p插入链表中
q->next=p;
}
}
p=head; //输出
while (p!=NULL)
{
cout<<p->data<<' ';
p=p->next;
}
cout<<endl;
}
编程相关文章推荐
[编程]气泡法排序
[编程]关于VB屏幕拷贝的问题
[编程]编程语言
[编程]帮忙看一下在各个程序有啥问题???
[编程]C语言编程问题 急急急!!!
[共享资源]南方三大名楼是哪些?
[手机]完美何时开网通新区啊?4月能开吗?谢谢
[编程]气泡法排序
[反病毒]瑞星修补漏洞
[多媒体]QQ空间无法新建FLASH模块
[电脑常识]有朋友告诉我怎么抓屏吗?
[操作系统]电脑自动关机的原因
[互联网]新浪网有这个活动吗???
[软件]SONY摄像机随机软件只能将摄像机影像复制到电脑上,而声音不能复
[硬件]家里有一台HP officejet 4255打印机别人送的,请介绍一下这款机的编程重要提示
编程特别推荐
编程论坛新帖