双向循环链表排序?
//双向链表实现二十个数从小到大排序 #include<iostream>
using namespace std;
struct list
{
int data;
list *lLink,*rLink;
};
void List(int n)
{
int temp;
list *p,*q,*front;
front=p=new list;
p->rLink=p->lLink=p;
int x;
cout<<"请输入数字:";
for(int i=0;i<n;i++)
{
cin>>x;
for(p=front;p->rLink!=front&&p->data<x;p=p->rLink)//这儿有问题,在一些情况下不能排序,谁有好方法请指教。
;
q=new list;
q->data=x;
q->lLink=p;
q->rLink=p->rLink;
p->rLink->lLink=q;
p->rLink=q;
}
cout<<"从小到大输出为:";
p=front;
while(p->rLink!=front)
{
cout<<p->data<<" ";
p=p->rLink;
}
}
int main()
{
List(3);
system("pause");
return 0;
}