链接列表错误将临时变量分配给列表的第一个变量

时间:2015-02-23 02:21:58

标签: c++ linked-list

所以我一直在处理链表,我试图将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 *

2 个答案:

答案 0 :(得分:0)

您还没有显示您声明列表对象的位置,但是从错误中我可以看到它的类型为LinkedList *。 如果要指向第一个节点,则必须分配   temp = list-&gt; list。

当然,由于list是LinkedList的私有成员,因此您无法在LinkedList类之外执行此操作。 因此,您需要提供一个返回此节点对象的访问器函数。

答案 1 :(得分:-1)

假设列表是LinkedList *,那么temp = list->list;应该有效。