尝试在我的链表类中实现一个函数,该函数将返回列表中存储的数据总量。即,链表总数为5、10、20时将返回35。
我的节点类包含getNextPtr和getData方法。
我实现了一个新的Node并将其命名为currentPtr并使其指向headPtr。
编译时,我得到:“ 36请求非类类型的currentPtr中的成员getNextPtr”
38和40相同,其中38是currentPtr中的getData。
不太确定我缺少什么...
int LinkedList::getTotal()
{
int total = 0;
Node *currentPtr = headPtr;
(36) while(currentPtr.getNextPtr() != NULL)
{
(38) total += currentPtr.getData();
(40) currentPtr = currentPtr.getNextPtr();
}
return total;
}
这个想法是遍历链表,直到到达tailptr为止,后者将指向null,然后将其遇到的所有数据添加到总计中。
希望有道理,在此先感谢:)
最佳答案
如果要取消引用指针,则需要使用->
,而不是.
例如您的代码变为:
while(currentPtr != NULL)
{
total += currentPtr->getData();
currentPtr = currentPtr->getNextPtr();
}
我还发现写
while(currentPtr)
(即'当我有一个有效的指针')而不是显式测试NULL
更自然。关于c++ - 在链表中返回总数据的函数C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7298374/