如何实现c++;linkedlist构造函数? 我现在试图把我的C链表数据结构转换成C++,我在构造函数上遇到了一些麻烦,并实现了代码。以下是我的节点类的内容: template <class T> class Node { public: T item LinkedList::Node<T>* next; Node(); ~Node(); }; 模板 类节点{ 公众: T项 LinkedList::Node*下一步; Node(); ~Node(); };
下面是我的列表类:如何实现c++;linkedlist构造函数? 我现在试图把我的C链表数据结构转换成C++,我在构造函数上遇到了一些麻烦,并实现了代码。以下是我的节点类的内容: template <class T> class Node { public: T item LinkedList::Node<T>* next; Node(); ~Node(); }; 模板 类节点{ 公众: T项 LinkedList::Node*下一步; Node(); ~Node(); };,c++,C++,下面是我的列表类: template <class T> class LinkedList { private: linkedlist::Node<T>* head; linkedlist::Node<T>* tail; public: size_t length; LinkedList(); ~LinkedList();//deconstructor size_t insertAtTail(T ite
template <class T>
class LinkedList {
private:
linkedlist::Node<T>* head;
linkedlist::Node<T>* tail;
public:
size_t length;
LinkedList();
~LinkedList();//deconstructor
size_t insertAtTail(T item);
size_t insertAtHead(T item);
size_t insertAtIndex(size_t index, T item);
T removeTail();
T removeHead();
T removeAtIndex(size_t index);
};
模板
类链接列表{
私人:
linkedlist::节点*头;
linkedlist::节点*尾部;
公众:
尺寸与长度;
LinkedList();
~LinkedList();//解构器
尺寸\u t插入附件(t项);
尺寸(t项)插入图;
尺寸插入索引(尺寸索引,t项);
T除去尾();
T去除头部();
T removeAtIndex(尺寸指数);
};
我就是这样为构造函数编写代码的:EDIT:从LinkedList中删除void,因为我也忘了
LinkedList::LinkedList(){
Node<T> node(NULL);
head = node;
tail = node;
}
//Create node and return reference of it.
Node<T>::Node(T item) {
Node* nNode = NULL;
nNode->item = item;
nNode->next = NULL;
return nNode;
}
LinkedList::LinkedList(){
节点(空);
头部=节点;
尾=节点;
}
//创建节点并返回其引用。
节点::节点(T项){
Node*nNode=NULL;
nNode->item=项目;
nNode->next=NULL;
返回nNode;
}
我不断收到节点的类型错误,并且LinkedList缺少“类模板的参数列表”
LinkedList
”。这看起来有点复杂,我真的不太明白该怎么做。比如,为什么我不能在header方法中实现header方法的代码,而不必在不同的文件中执行,包括header文件。非常感谢任何提示、帮助等 您的构造函数应该以template关键字作为前缀,并且还包括类型T,如下所示:
template <class T> LinkedList<T>::LinkedList(){
Node<T> node = new Node<T>();
head = node;
tail = node;
}
模板LinkedList::LinkedList(){
节点=新节点();
头部=节点;
尾=节点;
}
另外,您必须在堆上创建节点变量,您编写它的方式将使用堆栈中的局部变量来初始化类成员。从
LinkedList::LinkedList()
构造函数没有返回类型中删除void
。我是否也必须对构造函数使用maloc?我想是的,我只是不确定我的LinkedList结构。你有一些基本问题。首先尝试对更简单的类(没有模板,没有指针)使用构造函数。不,LinkedList=LinkedList()
可以工作,与LinkedList=new LinkedList()
相同,()
是构造函数,
是指定模板的T
。删除构造函数中节点的创建,简单设置head=tail=nullptr
。此外,由于LinkedList是一个模板,因此在定义构造函数之前需要模板;你有一些打字错误。此外,最初列表不会为空。这只是从概念上说明如何修复错误。修复打字错误以及如何初始化列表取决于实际实现。您发布的内容不正确,并且会导致更多错误。。。标题应该是模板LinkedList::LinkedList()
。。。