C++ c+中的指针+;没有显示正确的值
我得到了3个链表和联合函数C++ c+中的指针+;没有显示正确的值,c++,pointers,C++,Pointers,我得到了3个链表和联合函数 ab和结果列表是我想用元素填充结果列表的列表,但它总是空的 main是结果。unionset(a,b)函数是 void UnionSets(linkedlist & l1, linkedlist & l2) { node<type> *temp= l1.tail; if(temp!=NULL) { while(temp->next!=tail) {
a
b
和结果列表是我想用元素填充结果列表的列表,但它总是空的
main是结果。unionset(a,b)
函数是
void UnionSets(linkedlist & l1, linkedlist & l2)
{
node<type> *temp= l1.tail;
if(temp!=NULL)
{
while(temp->next!=tail)
{
AddNode(temp->data);
temp=temp->next;
}
}
temp=l2.tail;
if(temp!=NULL)
{
while(temp->next!=tail)
{
AddNode(temp->data);
temp=temp->next;
}
}
}
void联合集(linkedlist&l1、linkedlist&l2)
{
节点*temp=l1.tail;
如果(温度!=NULL)
{
while(临时->下一步!=尾部)
{
AddNode(临时->数据);
温度=温度->下一步;
}
}
温度=l2.5度;
如果(温度!=NULL)
{
while(临时->下一步!=尾部)
{
AddNode(临时->数据);
温度=温度->下一步;
}
}
}
像这样的东西
static linkedlist Union(linkedlist& A, linkedlist& B)
{
linkedlist result;
for(linkedlist::iterator iter = A.begin(); iter != A.end(); ++iter)
{
result.append(*iter);
}
for(linkedlist::iterator iter = B.begin(); iter != B.end(); ++iter)
{
result.append(*iter);
}
return result;
}
我需要假设一些关于链表实现的事情。如果我的假设是错误的,那么我的答案也是错误的
tail
元素的temp
指针。典型的命名法是从头部开始
,然后朝尾部开始。另外,最后一个节点中的下一个指针通常为NULL
void UnionSets(linkedlist & l1, linkedlist & l2)
{
node<type> *temp= l1.head;
while(temp!=NULL)
{
AddNode(temp->data);
temp=temp->next;
}
temp=l2.head;
while(temp!=NULL)
{
AddNode(temp->data);
temp=temp->next;
}
}
void联合集(linkedlist&l1、linkedlist&l2)
{
节点*temp=l1.head;
while(temp!=NULL)
{
AddNode(临时->数据);
温度=温度->下一步;
}
温度=l2.0水头;
while(temp!=NULL)
{
AddNode(临时->数据);
温度=温度->下一步;
}
}
您的代码不清晰,无法编译,您可以按原样发布代码吗?这些都是什么意思?你想干什么UnionSets
它应该创建一个新的链表,其中包含前两个列表的元素。add node也是一个函数,您可以忽略该部分。我只想在结果列表中填充一些值,但它总是空的。我想我需要这样做。add()或this*。添加类似的内容不确定声明“你可以忽略这一部分“相当于一种断言,即该错误不能以任何方式与该代码相关。你有多确定?考虑到你正在问一个关于一个非常常见的介绍性练习的问题,我们应该有多确定?因为这不是家庭作业,所以请使用std::list
,集中精力在程序的其他部分。我假设他的作业是必须与给定API匹配的家庭作业,但这确实是个好主意。将linkedlist::iterator
更改为node*
,a.begin()
更改为a.head
,a.end()
更改为tail
(或NULL),将+iter
更改为iter=iter->next
,并将附加到AddNode
。我所做的只是让它看起来像清晰、理智的C++。其好处是,可以很容易地将其制作成通用容器的模板函数。