c++ - 在单个节点中有 2 个项目的链接节点

标签 c++ nodes

如何创建链接节点,以便每个链接节点在单个节点中包含 2 个项目?我不确定我的方向是否正确。我类有 2 个私有(private)成员,我不确定我是否需要 2 个集合函数,或者我是否可以有一个带有 2 个参数的集合函数。例如 void setItem(const string& anItem, const string secondItem);

#ifndef _NODE
#define _NODE
#include<string>
using namespace std;

class Node
{
private:
   string item; // A data item
   Node* next; // Pointer to next node

public:
   Node();
   Node(const string& anItem);
   Node(const string& anItem, Node* nextNodePtr);
   void setItem(const string& anItem);
   void setNext(Node* nextNodePtr);
   string getItem() const ;
   Node* getNext() const ;
}; // end Node

#include "Node.cpp"
#endif

这是我的 Node.cpp 文件:

#include "Node.h"
#include <cstddef>
#include<string>

using namespace std;

Node::Node() : next(nullptr)
{
} // end default constructor

Node::Node(const string& anItem) : item(anItem),  next(nullptr)
{
} // end constructor

Node::Node(const string& anItem, Node* nextNodePtr) :
            item(anItem), next(nextNodePtr)
{
} // end constructor

void Node::setItem(const string& anItem)
{
   item = anItem;

} // end setItem

void Node::setNext(Node* nextNodePtr)
{
   next = nextNodePtr;
} // end setNext

string Node::getItem() const
{
   return item;
} // end getItem


Node* Node::getNext() const
{
   return next;
} // end getNext

最佳答案

对我来说,我会使用两个公共(public)函数来设置节点的两个项目。一个函数将只修改一项,而另一个函数将修改两项。喜欢:

// Function that will only set one item
void Node::setIndexItem(const int propNum, const string val)
{
    if (propNum == 1) { // You may use 0 for the first item
        this.item = val;
    } else if (propNum == 2) { // You may use 1 for the second item
        this.item2 = val;
    } else {
        // You may want to raise an exception here. Depends on you really.
    }
}

// Function that will set the two items
void Node::setItems(const string val1, const string val2)
{
    this.item = val1;
    this.item2 = val2;
}

关于c++ - 在单个节点中有 2 个项目的链接节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34464665/

相关文章:

c# - 从程序集动态生成 W​​inForms TreeView

c++ - 编译卡在先前的编译C++中

C++顺序搜索找不到最后一个元素

javascript - 在 JavaScript 中通过节点名称导航元素

C++链表节点存储通用对象

javascript - 创建具有扩展节点的集群网络力定向图

java - 如何在 Java 中设置/赋予父节点其子节点、其子节点的子节点等等?

c++ - Android-ndk 与 eclipse : How to force reinstallation of apk

python - 使用 ctypes 调用带有指针参数的 C++ 函数

c++ - pthread线程状态