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

时间:2015-03-09 16:17:41

标签: c linked-list

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

1 个答案:

答案 0 :(得分:0)

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

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 *类型的任何其他对象一样对待它。