1
我想要的程序来重新排列从最小到最大的一个链表,但我不断收到“错误:左值要求作为分配的左操作数”当我试图让prev->link()=temp;
和minum->link()=head_ptr;
左值错误,当试图理清链表
node* previouse_minimum(node*& head_ptr){
node* cursor;
node* minimum;
node* prev;
minimum=head_ptr;
for(cursor=head_ptr; cursor != NULL; cursor=cursor->link())
if(cursor->data() < minimum->data())
minimum=cursor;
cursor = head_ptr;
prev = cursor;
while(cursor->link() != minimum)
{
cursor = cursor->link();
prev = cursor;
}
cout << prev->link()->data() << endl;
return prev;
}
void sort(node*& head_ptr, node*& marker_ptr)
{
node* print_ptr;
node* prev = previouse_minimum(head_ptr);
node* temp=NULL;
node* minum;
marker_ptr = head_ptr;
while(marker_ptr->link()->link()!= NULL)
{
minum = prev->link();
temp=minum->link();
prev->link()=temp;
minum->link()=head_ptr;
head_ptr=minum;
marker_ptr=minum->link();
prev=previouse_minimum(marker_ptr);
}
for(print_ptr = head_ptr; print_ptr !=NULL; print_ptr = print_ptr->link())
cout << print_ptr->data() << " ";
cout << endl;
}
显然'link()'是一个返回左值的方法,这意味着你不能指定任何东西。你不会显示你的'node'代码,但你应该使用底层变量来分配。 –