【发布时间】:2021-03-22 16:32:12
【问题描述】:
由于我无法控制的原因,函数声明不得更改。我不太擅长使用指针,所以 NODE** 声明真的让我很反感。
我知道基本要点或多或少是正确的。由于指针,我不断收到错误,不知道如何解决。
else语句的这一行目前有错误:
NODE* last = data;
//a value of type "NODE **" cannot be used to initialize an entity of type "NODE *"
但我不知道我是否正确处理了指针。
class NODE {
public:
string firstname;
string lastname;
string email;
NODE* next;
};
void add_node_tail(NODE** data, string firstname,string lastname, string email) {
NODE* temp = new NODE;
temp->firstname = firstname;
temp->lastname = lastname;
temp->email = email;
temp->next = NULL;
if(!data) { // empty list becomes the new node
data = &temp;
return;
} else { // find last and link the new node
NODE* last = data;
while(last->next) {
last=last->next;
last->next = temp;
}
}
}
如果您能给我简要说明指针在正确实现中的工作方式,那将是完美的答案。
【问题讨论】:
-
"由于我无法控制的原因" = "这是学校作业",不是吗?请务必检查您学校的政策是否允许您提出有关家庭作业的问题。
-
你有没有一个例子说明
add_node_tail是如何被调用的,为什么它被这样调用? -
@NikitaDemodov 我查过了!没有提及任何关于提问的规则。那为什么不呢?
标签: c++ linked-list singly-linked-list