当我返回节点*时,C++中出现未知类型错误

Unknown type error in C++ when I return Node *

本文关键字:未知 错误 类型 C++ 返回 节点      更新时间:2023-10-16

当我编译时,我收到" 错误:未知类型名称'节点'">

它来自 *Node * findKthElementToLast(int k(* 函数,因为它返回 Node * 类型

我无法解决它。任何帮助都会很好!

LinkedList.h

#ifndef LINKEDLIST_H
#define LINKEDLIST_H
#include <cstdlib>
#include <iostream>
using namespace std;
template<class DataType>
class LinkedList{
struct Node {
    DataType dataIn;
    Node * next;
};
public:
    LinkedList();
   ~LinkedList();
    bool insertHead(DataType dataNew);
    bool insertTail(DataType dataNew);
    bool removeHead();
    bool removeTail();
    bool remove(DataType dataOut);
    bool removeDuplicates();
    bool removeDuplicatesUsingHash();
    bool search(DataType dataSearch);
    Node * findKthElementToLast(int k);
    void printLinkedList();
private:
   Node * head;
};
#endif

从 LinkedList 中查找 KthElementToLast 函数.cpp

template<class DataType>
Node * LinkedList<DataType>::findKthElementToLast(int k){
    if(head == NULL){
     return head;
    } 
    Node * iter1 = head;
    Node * iter2 = head;
    int counter = 1;
    while(counter < k){
        counter++;
        iter2 = iter2->next;
    }
    while(iter2->next != NULL){
        iter1 = iter1->next;
        iter2 = iter2->next;
    }  
    return iter1;
}

应该是

template<class DataType>
LinkedList<DataType>::Node *LinkedList<DataType>::findKthElementToLast(int k) {

节点在 LinkedList 类内声明,因此来自该类外部的任何引用都必须限定。