我将如何创建这个双重链接列表?

时间:2014-04-13 21:16:37

标签: c++ doubly-linked-list

我目前正在学习数据结构和链接列表。我试图创建一个双向链表,我不确定如何去做。 ' Node'的数据我想成为一个我已经创建的课程。我可以在网上找到关于链表的所有内容,它们只使用整数值,而且我不确定如何最好地合并其他类。

我想我会做的是......

我有一个抽象的课程'帐户'。然后课程'储蓄'和'检查'来自账户。我希望得到“节点”的数据。成为一个帐户类型,可能是一个基类指针,因此两者都是“储蓄”。和'检查'可以使用。

我不确定的是,让我们在我的节点'我的私人数据成员是一个基类'帐户'指向帐户本身,nextPointer和previousPointer的指针。课程列表'将管理链表,并创建新节点。但是,如何访问帐户的成员函数呢?

我想知道最好的办法是什么?我是否应该在课堂上添加getter' Node'调用Accounts getter函数来检索有关该帐户的数据?或者最好只是制作“储蓄”。和'检查'节点本身,并添加下一个指针和前一个指向私有数据成员的指针?

1 个答案:

答案 0 :(得分:0)

您应该创建一个通用的双重列表

template <class T> class List{
    T value;
    Node& next; //Or Node* whatever you choose
    Node& prev;
    public:
     ...
 };

通过这种方式,您的列表可以正常运行 - 作为列表。 现在,如果您需要一个帐户列表,只需声明一个

List<Account> allAccounts = new List<Account>(); //assuming there's a default c'tor

如果你需要在Account和其他人之间建立一些关系,你可以使用继承。

您将列表设为通用且不受任何类型限制的事实将使您的代码看起来更优雅,更干净,更有意义。