c++ - 是否可以创建一个链表来保存指针而不是整数或字符串?

标签 c++ pointers inheritance linked-list

我是编程新手,但我对链表有疑问。我正在创建一个双链表,我希望我的节点存储指针而不仅仅是字符串或整数。这样的代码行得通吗?

template <typename T>
class LinkedList
{
private:
    struct Node {
        string name;
        int age;
        int location;
        Node* next;
        Node* previous;
        Node(T info){ name = info->getName(); age = info->getAge; location = info->getLocation; next = NULL; previous = NULL; }


    };
    Node* head = NULL;
    Node* tail = NULL;

这是假设 (T info) 是一个指向类对象的指针,该类对象是从以下内容创建的:

#include "Person.h"


Person::Person(string name, int age, int location)
{
    this->name = name;
    this->age = age;
    this->location = location;
}


Person::~Person()
{
}

string Person::getName()
{
    return name;
}

int Person::getAge()
{
    return age;
}

int Person::getLocation()
{
    return location;
}

我希望能够从我的人员类中创建一个人员,然后将该人员(姓名、年龄和位置)存储在我的链接列表中:

Person* newPerson = new Person(name, age, location);
LL.insert(newPerson);

LL 是我在 main.cpp 中创建的一个链表,insert 是我的链表的一个函数。

也许这不是最好的方法,但我可以这样做吗?

最佳答案

链表是一种数据结构,它定义了多个数据项之间的某种关系。

如您所述,该数据通常是字符串或整数。但它可以是任何东西。

您可以将链接列表想象成一个书架。你通常把书放在书架上。但是你也可以把鞋子放在那里,鞋子会像书一样放在书架上。

关于c++ - 是否可以创建一个链表来保存指针而不是整数或字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33381704/

相关文章:

c++ - c1xx : fatal error C1083: Cannot open source file - with some Chinese or Javanese

java - 注入(inject)与继承

c++ - OS X 将扩展与应用程序相关联

c++ - 像在 Python 中一样环绕 C++ vector

c++ - 如何验证是否使用相同的引用调用了 2 个模拟方法?

objective-c - 如何确定父类(super class)私有(private)方法是否在 Objective-C 中被重写?

python - 使用多重继承调用父类 __init__,正确的方法是什么?

C 将指针传递给 char 的指针

c - 指针数组的长度

arrays - 在 Visual Studio 上的内联汇编函数中传递指针的内容