我正在实现一个双列表库。 我在每个节点中都有一个数据元素。我有一个功能
InitList(ListPtr) 接收传递的 listPtr 并初始化第一个和最后一个元素,并将数据分别设置为 1 和 2。
现在,如果我附加一个节点,我将要附加的节点中的数据追加为 3 并使其最后
我在想一个函数插入(ListPtr,节点)。这个节点会有一些数字,比如 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;
你的问题有点令人困惑/无法解释。您拥有什么样的数据?为什么要在该数据中保留数字。据我所知,您要对位置敏感的数据进行排序。首先,我认为您不需要双链表。一个简单的链表将适合您。您也可以选择改用动态数组。但是,如果您真的想实现链表,那么不应该通过引入双链表来使其复杂,因为它们难以管理。如果您告诉我数据的性质以及您要实现的内容,我将能够更好地回答。对我来说,逻辑肯定有问题。