我想實現一個單獨的鏈表。我得到'節點'沒有在第8行和第15行命名類型。同樣在第33和34行,我得到第一個和最後一個沒有在此範圍內聲明。這可能是Node未被識別的結果。'節點'沒有命名一個類型鏈接列表
#include <iostream>
template <typename T>
class Linked_List {
public:
Linked_List();
void print_list();
Node* find_kth(int k); // Line 8
void insert_front(T d);
void insert_back(T d);
void delete_front();
void delete_back();
private:
int length;
Node* first, last; // Line 15
class Node {
public:
Node(Node* n = NULL, T d = T{});
private:
Node* next;
int data;
};
};
template <typename T>
typename Linked_List<T>::Node(Node* n, T d) {
next = n;
data = d;
}
template <typename T>
Linked_List<T>::Linked_List() {
first = NULL; // Line 33
last = NULL; // Line 34
length = 0;
}
template <typename T>
void Linked_List<T>::print_list() {
Node* temp = first;
if (length > 0) {
std::cout << first->data << std::endl;
}
for (int i = 1; i < length; ++i) {
temp = temp->next;
std::cout << temp->data << std::endl;
}
}
template <typename T>
void Linked_List<T>::insert_front(T d) {
Node* new_node = new Node{first, d};
Node* temp = new_node;
first = temp;
}
int main() {
Linked_List<int> l_l;
//l_l.insert_front(10);
// l_l.print_list();
return 0;
}
嘗試在類中使用它之前聲明節點類 –