链表c++插入,所有情况都已检查,但没有任何工作
Linked list c++ inserting, all cases checked but nothing works
所以我正在尝试制作一个基本的无尾单链表,并使用另一个类"CarObject"将其添加到我的CarList中,这基本上就是我的链表。唯一的问题是,在写出代码并测试后,似乎什么都无法打印/工作,我甚至根本没有收到错误。我有点不知所措,不确定自己做错了什么。
更新:假设我们忽略我的代码,但您将如何实现向链表(无尾(添加函数
class CarList
{
class NodeType{
friend class CarList;
private:
CarObject* data;
NodeType* next;
};
public:
void addCar(CarObject*);
private:
NodeType *head;
};
void CarList::addCar(CarObject *car){
NodeType* newNode;
NodeType* currNode;
newNode = new NodeType;
newNode->data = car;
newNode->next = NULL;
currNode = head;
while (currNode != NULL) {
if (car->getYearModel().lessThan(currNode->data->getYearModel()))
break;
currNode = currNode->next;
}
newNode->next = currNode;
}
void CarList::print(){
NodeType* currNode = head;
while (currNode != NULL) {
currNode->data->printTheCarInfo();
currNode = currNode->next;
}
}
您忘记更新上一个节点的next
指针:
NodeType* prevNode = NULL;
while (currNode != NULL) {
if (car->getYearModel().lessThan(currNode->data->getYearModel()))
break;
prevNode = currNode; //remember the previous node
currNode = currNode->next;
}
newNode->next = currNode;
if (prevNode)
prevNode->next = newNode;
else
head = newNode; //if there's no previous node - newNode is the new head!
相关文章:
- 链表c++插入,所有情况都已检查,但没有任何工作
- std::数组边界检查如何工作?
- 为什么 C 样式字符串的工作空指针检查不?
- C++:检查动态取消分配是否正常工作
- 来自行编辑的 Qt 值和来自 QCheckBox 的检查值无法按预期工作
- 检查工作正常的 CXX 编译器:/cygdrive/c/cygwin64/bin/clang++ -- 已损坏
- C++ 二次方程对于代码检查器无法正常工作
- 输入数据类型检查循环未按预期工作 (C++)
- 如何自我检查工作
- 如何使用 cmake 在C++中快速检查(基于属性的测试)工作?
- 使用未来wait_for时无法检查成员变量,但是如果我睡在线程中,它可以工作
- C++ 使用 || 检查字符是否不在字符串中不工作
- c++线程的安全性和时间效率:为什么有互斥检查的线程有时比没有它的线程工作得更快
- qt检查文件中是否存在文件,如果它没有提示用户输入其位置,则将文件复制到程序工作目录
- 检查连接4的获胜功能对角线是否不工作
- 检查输入类型并根据输入类型工作
- 生成文件:更改工作目录以进行检查
- 如何检查驱动程序代码签名策略是否已启用并实际工作
- 在boost MPL中,如何检查操作是否按预期工作
- C++:提升:如何检查工作目录中另一个文件夹中是否存在文件夹