我仍然不知道我的代码有什么问题。
我只想从链表类中调用insertInEmpty和insertAtBegin来传递指针的最后一个和某些整数。
我很困惑,需要一些纠正方法的帮助...非常感谢您的帮助!!谢谢!!
struct Node *last = nullptr;
last = linkedlist::insertInEmpty(last,5); <---- error on last parameter
last = linkedlist::insertAtBegin(last,4); <---- error on last parameter
linkedlist.h
#ifndef LINKEDLIST_H
#define LINKEDLIST_H
class linkedlist
{
public:
struct Node;
static struct Node *insertInEmpty(struct Node *last, int new_data);
static struct Node *insertAtBegin(struct Node *last, int new_data);
};
#endif // LINKEDLIST_H
linkedlist.cpp
#include "linkedlist.h"
struct Node
{
int data;
struct Node *next;
};
struct Node *insertInEmpty(struct Node *last, int new_data)
{
// if last is not null then list is not empty, so return
if (last != nullptr)
return last;
// allocate memory for node
struct Node *temp = new Node;
// Assign the data.
temp -> data = new_data;
last = temp;
// Create the link.
last->next = last;
return last;
}
//insert new node at the beginning of the list
struct Node *insertAtBegin(struct Node *last, int new_data)
{
//if list is empty then add the node by calling insertInEmpty
if (last == nullptr)
return insertInEmpty(last, new_data);
//else create a new node
struct Node *temp = new Node;
//set new data to node
temp -> data = new_data;
temp -> next = last -> next;
last -> next = temp;
return last;
}
答案 0 :(得分:2)
您的struct Node
是linkedlist
中的内部结构。
使用linkedlist::Node *last = nullptr;
或将其移出。
您的cpp文件还应将linkedlist::
范围用于Node
的实现,否则会出现链接问题。