我的问题很简单,可以使用C++,实现链接列表数据结构而不使用指针(下一个节点)吗?为了进一步限定我的问题,我的意思是可以只使用类实例创建一个Linked-List数据结构.
常见的节点定义可能如下:
template<typename T>
struct node
{
T t;
node<T>* next;
node<T>* prev;
};
Run Code Online (Sandbox Code Playgroud)
我知道std::list等等,我只是想知道它是否可能 - 如果是这样的话怎么样?代码示例将不胜感激.
更多说明:
Jer*_*ner 17
当然,如果您不介意链接列表具有最大大小,您可以静态分配列表节点数组,然后使用整数索引作为每个节点的"上一个"和"下一个"值,而不是指针.我在过去做过这个以节省一点内存(因为整数可以是2或4个字节,而在64位系统上,指针将是8个字节)
DVK*_*DVK 11
是的,这是可能的.使用数组索引而不是指针.
是:
class node {
std::string filenameOfNextNode;
std::string filenameOfPrevNode;
std::string data;
node nextNode() {
node retVal;
std::ifstream file(filenameOfNextNode.c_str());
retVal.filenameOfNextNode = file.getline();
retVal.filenameOfPrevNode = file.getline();
retVal.data = file.getline();
return retVal;
}
};
Run Code Online (Sandbox Code Playgroud)
受到关于链表起源的评论的启发