单链表插入排序问题
//从键盘上输入20个数,把他们按从小到大的顺序存储在链表中,然后输出 #include<iostream>
using namespace std;
struct list
{
int data;
list *link;
};
void List(int n)
{
int temp;
list *p,*first,*q;
first=new list;
first->link=NULL;
int x;
cout<<"请输入数字";
for(int i=0;i<n;i++)
{
p=new list;
cin>>x;
p->data=x;
p->link=first->link;
first->link=p;
}
q=p->link;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
{
if((p->data<q->data)&&(p->link!=NULL))
{
temp=p->data;
p->data=q->data;
q->data=temp;
p=p->link;
}
}
cout<<"从小到大输出为";
for(int i=0;i<n;i++)
{
cout<<p->data<<" ";
p=p->link;
}
}
int main()
{
List(5);
system("pause");
return 0;
}
请大家指导错误,如果那位大神有更好的方法请写下来学习一下,谢谢!
[ 本帖最后由 zcdjt 于 2015-4-28 21:17 编辑 ]