尝试在我的链表类中实现一个函数,该函数将返回列表中存储的数据总量。即,链表总数为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/

10-11 22:50