C++ 尝试对链表排序时出现左值错误

C++ 尝试对链表排序时出现左值错误,c++,sorting,linked-list,lvalue,C++,Sorting,Linked List,Lvalue,我希望程序将链表从最小值重新排列到最大值,但当我试图使prev->link()=temp和minum->link()=head\u ptr node* previouse_minimum(node*& head_ptr){ node* cursor; node* minimum; node* prev; minimum=head_ptr; for(cursor=head_ptr; cursor != NULL; cursor=cursor-&

我希望程序将链表从最小值重新排列到最大值,但当我试图使
prev->link()=temp
minum->link()=head\u 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;

   }
node*以前的最小值(node*&head\ptr){
节点*光标;
节点*最小值;
节点*prev;
最小值=水头ptr;
对于(cursor=head\u ptr;cursor!=NULL;cursor=cursor->link())
如果(光标->数据()<最小值->数据())
最小值=光标;
光标=头部ptr;
prev=光标;
同时(光标->链接()!=最小值)
{
光标=光标->链接();
prev=光标;
}
cout link()->data()link()->link()!=NULL)
{
minum=prev->link();
temp=minum->link();
prev->link()=temp;
minum->link()=头部ptr;
水头=分钟;
marker_ptr=minum->link();
上一个=上一个最小值(标记器ptr);
}
对于(print_ptr=head_ptr;print_ptr!=NULL;print_ptr=print_ptr->link())
cout data()
prev->link()
以及
minum->link()
都是返回节点的函数。不能为函数分配值/指针。要设置节点,可以使用
void link(node*input)
prev->link()
以及
minum->link>等参数重载
link()
函数()
是返回节点的函数。您不能为函数分配值/指针。要设置节点,可以使用
void link(node*input)
等参数重载
link()
函数
是一种返回左值的方法,这意味着您不能为其分配任何内容。您不显示
节点的代码,但应使用底层变量进行分配。显然
链接()
是一种返回左值的方法,这意味着您不能为其分配任何内容。您不显示
节点的代码,但应使用底层变量进行分配。