所以我一直在处理链表,我试图将temp变量分配给列表中的第一个节点,但是它出错了
我设置临时节点列表
的代码Node *temp = NULL;
Node *found = NULL;
bool isfound = false;
temp = list;
在LinkedList类
中定义列表的位置#ifndef LINKEDLIST_H
#define LINKEDLIST_H
#include "Node.h"
class LinkedList{
private:
Node *list;
Node *createNode();
Node *searchLocation(int);
public:
LinkedList();
~LinkedList();
void insertNode();
void deleteNode(int);
void printList();
void searchNode();
};
#ENDIF
节点标题
#ifndef NODE_H
#define NODE_H
class Node{
public:
char lastName[20];
char firstName[20];
int idNumber;
Node *next;
Node *head;
Node(char a[], char b[], int i);
void printNode();
};
#endif
节点类
#include <iostream>
#include "Node.h"
using namespace std;
Node::Node(char a[], char b[], int i){
*lastName = *a;
*firstName = *b;
idNumber = i;
}
void Node::printNode(){
cout<<lastName<<", "<<firstName<<": "<<idNumber<<endl;
}
错误说无法在赋值temp = list;
中从LinkedList *转换为Node *答案 0 :(得分:0)
您还没有显示您声明列表对象的位置,但是从错误中我可以看到它的类型为LinkedList *。 如果要指向第一个节点,则必须分配 temp = list-&gt; list。
当然,由于list是LinkedList的私有成员,因此您无法在LinkedList类之外执行此操作。 因此,您需要提供一个返回此节点对象的访问器函数。
答案 1 :(得分:-1)
假设列表是LinkedList *,那么temp = list->list;
应该有效。