如何在 c 中创建多个链表的数组?

How do I create an array of multiple linked lists in c?

我有一个结构链接,我需要将多个结构存储在一个固定大小的数组中。 每个链表仍然需要能够动态更改。我只想 创建一个指针数组,其中的指针指向每个链表的头部。但我不确定这是否可行。

假设您的列表节点定义类似于

struct node {
  T data; // for some arbitrary type T
  struct node *next;
};

并假设您将个人列表用作

struct node *aList = createList();
addToList( &aList, newData );  // assumes the list head may change
struct node *n = findInList( aList, dataItem );

那么您需要做的就是

struct node *listArray[N];  // holds pointers to N separate lists
...
listArray[i] = createList();
addToList( &listArray[i], newData );
struct node *n = findInList( listArray[i], dataItem );

每个listArray[i]是一个单独的列表;就像对待 struct node *.

类型的任何其他对象一样对待它