使用链表确定是否合适的子集
determining if proper subsets using linked lists
我正在尝试确定两个链表是否是一个合适的子集…
不确定我是如何将其设为false的,当它应该为true时,因为p包含Q的所有元素。
每次浏览时都需要将q重置为q的开头。
为此,您需要在For循环之前保存原始节点,并每次重置:
Node *q_start = q;
for(p=p; p!=NULL; p=p->next) {
q = q_start;
这应该是最简单的修复方法,但不是最好的。
如果使用p={1,2,3}和Q={1,2,3,4},则提供的代码应返回true。然而,这只是因为你P是Q的子集,它的值与它们在Q中的顺序相同。如果您在P中迭代以检查每个值是否在Q中,则需要检查Q的所有,而不仅仅是尚未检查的剩余部分。此外,代码
if (p!=NULL && q==NULL)
return false;
在函数顶部附近是不必要的,因为您还在for循环中检查q==NULL:
if(q==NULL)
return false;
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 此代码是否违反一个定义规则
- 是否需要删除包含对象的"pair"?
- 检查一组类型是否是具有组合的子集
- 检查数值类型是否是另一个数值类型的子集
- 如何检查字符串是否是另一个字符串的正确子集
- 序列容器是否不是常规容器的子集
- 使用链表确定是否合适的子集
- 确定一个向量是否是另一个向量的子集的有效方法
- EXPECT_CALL检查参数是否包含给定的子集
- C++:读取数据集并检查向量是否<Class>是向量的<Class>子集
- 优化检查一个比特向量是否是另一个的适当子集
- 检查子集是否包含给定子集列表的快速方法
- 如何在c++中检查一个向量是否是另一个向量的子集
- 如何查找一个列表是否是另一个列表的子集