c++ - 使用运算符重载 C++ 连接两个链表
问题描述
我想使用运算符重载连接两个链接列表。过去几个小时我一直在尝试,但没有结果。
我正在尝试创建一个单独的函数用于连接,稍后我将在运算符重载中使用它。这是我到目前为止所拥有的。
列表定义
struct Node
{
int info;
Node* link;
};
class LinkList
{
public:
Node* head;
LinkList()
{
head = NULL;
}
void Append(int num);
void Insert(int num, int position);
void Print();
void Delete(int position);
void concatenate(LinkList list1, LinkList list2);
};
附加功能
void LinkList::Append(int num) // Creates a new node
{
Node* newNode = new Node();
newNode->info = num;
newNode->link = NULL;
if(head == NULL)
{
head = newNode;
}
else
{
Node* temp = head;
while(temp->link != NULL)
{
temp = temp->link;
}
temp->link = newNode;
}
}
连接函数
void concatenate(LinkList list1, LinkList list2)
{
LinkList list3;
Node* ptr1 = list1.head;
Node* ptr2 = list2.head;
while(ptr1->link!=NULL)
{
list3.Append(ptr1->info);
ptr1 = ptr1->link;
}
while(ptr2->link!=NULL)
{
list3.Append(ptr2->info);
ptr2 = ptr2->link;
}
list3.Print();
}
我收到 [Error] id 返回 1 退出状态。你能帮我纠正一下吗?(如果有人可以将它作为运算符重载的一部分直接实现,我将不胜感激)
解决方案
在连接函数中使用LinkList&
而不是LinkList
在类中实现复制构造函数
推荐阅读
- docker - 如何避免找不到包“github.com/golang/protobuf/jsonpb”错误
- javascript - IE 上的命名参数
- r - Travis CI 问题 - 无法检索 gpg 密钥
- angular - 如何降级 Angular 项目?
- android - 我收到错误,因为图片显示我找不到任何使用 react native 的解决方案 react native
- json - jq在powershell下用-提取密钥
- jira - Jira 是否使用基于令牌的身份验证?
- c++ - 使用默认参数定义友元函数的原因
- c# - 发布图像时“等待 httpClient.PostAsync”上的对象处置异常
- c# - Asp.net 下拉列表 - Listitem - 资源文件 - 值