gpt4 book ai didi

c++ - 如何向链表添加内容

转载 作者:行者123 更新时间:2023-11-28 07:35:09 25 4
gpt4 key购买 nike

我对遇到的错误感到有点困惑。我制作了一个名为“SensorNode”的类,每个 SensorNode 都有一个传感器链接列表。 SensorNode 的一个数据成员是名为 mySensors 的 SensorBlock(链表)指针。 mySensors 应该指向它所在的传感器节点所拥有的传感器链表中的第一个传感器。这是 SensorNode 的类声明:

class SensorNode {
char* NodeName;
int NodeID;
LOCATION Node1;
float batt;
int func;
SensorBlock *mySensors;


public:
SensorNode(char *n, float x, float y, float z, int i, float ah);
void print();
void setOK(int o);
int getOK();
void setLOC(float longi, float lat, float h);
int amIThisSensorNode(char *n);
void addSensorToNode(sensor *s);
};

这是 SensorBlock 的类声明:

class SensorBlock {

friend class SensorNode;
SensorBlock * LLelement;
sensor * SensEl;
};

我的问题是我的 void addSensorToNode(sensor *s) 函数。参数 s 指向一个传感器,该传感器应该添加到属于该节点的传感器列表的末尾。我不知道该怎么做,因为它不是我要创建和添加的新传感器,而是指向我要添加的传感器的指针。

这是我目前所拥有的:

void SensorNode::addSensorToNode(sensor *s) {
if(mySensors == '\0') //mySensors is first initialized to NULL
{
mySensors = s; //I get an error on this line.
}
else {

}
}

我不知道如何修复我在上面那行遇到的错误,而且当 mySensors 不再等于 null 时,我不知道在“else”中放入什么。如果我解决了上述错误,我可能会更好地理解新传感器的添加过程。预先感谢您提供的任何帮助!!

最佳答案

mySensors = s 应该是 mySensors.SensEl= s

因为 mySensors 是 SensorBlock 类型,而 s 是 sensor

void SensorNode::addSensorToNode(sensor *s) {
    if(mySensors == NULL) //mySensors is first initialized to NULL
    {
        mySensors = new SensorBlock();
mySensors->SensEl = s; //I get an error on this line.
mySensors->LLelement = NULL;
    }
    else {

SensorBlock newBlock = new SensorBlock();
newBlock->SensEl = s;
newBlock->LLelement = NULL;
mySensors->LLelement = newBlock;

    }
}

关于c++ - 如何向链表添加内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16886664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com