Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何实现c++;linkedlist构造函数? 我现在试图把我的C链表数据结构转换成C++,我在构造函数上遇到了一些麻烦,并实现了代码。以下是我的节点类的内容: template <class T> class Node { public: T item LinkedList::Node<T>* next; Node(); ~Node(); }; 模板 类节点{ 公众: T项 LinkedList::Node*下一步; Node(); ~Node(); };_C++ - Fatal编程技术网

如何实现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()
。。。