0

我正在实现一个双列表库。我在每个节点中有一个数据元素。我有一个功能

InitList(ListPtr) 接收传入的 listPtr 并初始化第一个和最后一个元素,并将数据分别设置为 1 和 2。

现在,如果我附加一个节点,我将节点中的数据附加为 3 并使其最后

我在想一个函数 Insert(ListPtr, node)。这个节点会有一些数字,比如 4,让我们说列表已经有 10 个节点。我在第 4 个位置插入节点,并使剩余节点的数据直到最后一个 +1。

我的问题是,如果我在列表中有 100 个节点,每次插入时我都会进行数据管理。

它是否应该完成。即我根本不需要关心数据吗?我在最初的开发过程中帮助了我,但现在似乎没有必要了。

请让我知道你的想法

//每个节点

typedef struct Node 
{
        int data;
        node_t *next;
        node_t *prev;
}node_t;


//List always begins with first and last nodes
typedef struct List
{
    node_t *first; // Pointer to first node in List
    node_t *last;  // Pointer to last node in List

}list_t;
4

1 回答 1

0

您的问题有点令人困惑/无法解释。你有什么样的数据?为什么要在该数据中保留数字。据我所知,您想要对位置敏感的数据进行排序。首先,我认为您不需要双链表。一个简单的链表就可以了。您也可以选择使用动态数组。但是如果你真的想实现一个链表,那么你不应该通过引入一个双链表来让它变得复杂,因为它们很难管理。如果您告诉我您的数据的性质以及您想要实现什么,我将能够更好地回答。对我来说,逻辑肯定有问题。

于 2013-11-15T07:34:39.870 回答