队列实现失去了对头节点的跟踪
Queue implementation is losing track of head node
我有一个队列添加函数实现
void queue::add(myObj info)
{
node* node = new node;
node->info = &info; //<---suspect
node->next = NULL;
if(head == NULL){
head = node;
}
else{
tail->next = node;
}
tail = node;
count++;
}
每次它被访问头节点的数据点到我传入的任何东西。我意识到有一个模板,但我正试图建立一个,因为我显然需要实践。
我试图保持所有指针指向原始对象。我想传入对象并指向引用。
节点是具有myObj * info
和node * next
的结构体
info
是你的函数的一个参数,它是按值传递的。在这种情况下,&info
是参数的地址,而不是原始数据的地址。
这是未定义的行为,只能给出奇怪的结果。
一个可能的解决方案是:
void queue::add(myObj& info) // pass by reference
{
... // unchanged code
}
在这种情况下,&info
将引用原始对象的地址。
相关文章:
- 反向给定链表中的K节点
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- Boost Graph Library,修复节点大小
- C++A*算法并不总是在路径中具有目标节点
- 如何找到2个单链表的公共节点
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 光线跟踪器灯光反射错误
- 为什么我的删除节点函数实际上没有删除节点?
- 人脸跟踪arduino代码的优化
- 我们可以删除链表中静态内存中的节点吗
- 如何在pugixml中获取节点的内部XML
- 跟踪滚动条上的鼠标事件
- 为什么我们要为avl树实现返回一个指向节点的指针,而不是void函数
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 使用 Dijkstra 算法跟踪两个节点之间的最短路径
- 跟踪节点遍历调用 std::map::find
- 跟踪节点被访问的次数
- 跟踪图形访问者中访问的节点
- 队列实现失去了对头节点的跟踪
- Dijktra's-如何在从源到目标的最短路径中跟踪节点