c++ - 在c ++中按组件添加相同大小的链表元素
问题描述
我需要为链表定义一个类,在该类中我需要支持使用符号 + 以组件方式添加相同大小的链表元素。我在类中定义了一个运算符,它对列表中的元素进行基于 0 的索引。这是索引运算符的定义。
int operator[](int index)
{
node* current = head;
int count = 0;
while (current != NULL) {
if (count == index)
return (current->val);
count++;
current = current->next;}
return -1;
}
然后我尝试使用这个索引来获得总和。
List operator+(List l)
{List res;
for(int i=0;i<length();i++)// length() gives length of List, I have already defined it in my code//
{res[i] = (don't know what to put) + l[i];
return res;
}
我不知道我正在尝试做的任何事情是否正确。另外我不知道如何将元素的值放在我的主列表的索引 i 处。
请提出一种方法。
编辑1:我做了索引,因为它也是我作业的一部分,因为我已经需要做索引,这就是为什么我想在我的加法运算符中使用它。
解决方案
res[i] = (*this)[i] + l[i];
将工作。
但是您正试图撤消链接列表的链接部分,并将它们添加的复杂性从 O(N) 增加到 O(N 2 )。如果这是一项任务,则该解决方案很可能不会被接受,或者至少不应该被接受。
只需以与您相同的方式遍历两个列表operator[]
并即时创建第三个列表。
推荐阅读
- java - 在java中将unicode值转换为字符串
- gcc - List of pairs of strings initialization in constructor
- python - 如何自动化不是字符串的函数返回值?
- jmespath - 如何在多个对象中插入具有动态值的属性或在多个数组中动态添加元素?
- unity3d - 在 Unity 中访问 TM Pro InputField 文本
- php - Laravel + Vue 上的随机 javascript 运行时错误
- c# - 时间线自从升级到 Alpha 版本后移动非常缓慢(?) Unity
- unix - 切掉字符串的中间
- swift - Flutter Firebase 电话身份验证码未通过 SMS 发送
- c# - 在哪里保存用于生成和验证令牌的私钥?