【问题标题】:swapList() and operator=() functions in a LinkedList class keep crashing in C++LinkedList 类中的 swapList() 和 operator=() 函数在 C++ 中不断崩溃
【发布时间】:2023-04-03 05:35:01
【问题描述】:

我需要一个 swapList(LinkedList& Other) 函数来负责交换两个列表的值。目前,它取 Other 的最后一个元素并将其输入到 *this 的第一个元素中。然后它还将 Other 的最后一个元素移动到其列表的前面。到目前为止,这是我所拥有的:

      Node *nodePtr = Other.head;
      Node *temp = this->head;
      while(nodePtr){
        temp->value = nodePtr->value;
        nodePtr->value = Other.head->value;
        Other.head->value = temp->value;
        nodePtr = nodePtr->next;
      }
    }

现在,我知道了复制交换习语,我相信这意味着我可以在 operator=() 重载中调用交换函数。我似乎无法弄清楚交换。我玩过很多次,这既不是我的第一次,也不是我最后一次迭代该函数。任何帮助深表感谢。搜索只会在单个列表中产生交换节点。

【问题讨论】:

    标签: c++ singly-linked-list copy-and-swap


    【解决方案1】:

    每当玩链表(或其他链表)时,最好拿出纸和铅笔,你的链表,用方框表示值,用箭头表示指针,然后使用橡皮擦和新箭头在纸上进行交换。

    您必须这样做,以免在未先向目标框/值添加新箭头的情况下擦除箭头。

    要特别注意被交换的物品是相邻的!

    一旦你弄清楚了,你需要编写代码以相同的顺序做同样的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2014-04-28
      相关资源
      最近更新 更多