如何在纯C中创建链表

  • 本文关键字:创建 链表 c linked-list
  • 更新时间 :
  • 英文 :


我想知道如何在C中创建单个链表,其中每个节点都有:

  • 任何长度的绳子
  • 整数列表(要存储的整数总数在节点之间会有所不同,所以我不能使用整数数组)

提前谢谢。

我不打算为您编写代码,但下面是一些入门步骤。这是一种可能的方法;考虑到你的实际需求,还有一些可能会更好地发挥作用。

首先,确定您的数据结构。你需要两个。第一个是整数的链表。第二个是包含字符串和列表的链表。以下是后者中的节点可能是什么样子的:

typedef struct node {
    char* someStr;
    LIST* integerList;
    struct node* next;
} NODE;

然后,有一个函数可以创建整数的链表。使用另一个函数为字符串分配内存并返回一个char*

具有第三个函数,该函数将NODEs的链表、字符串和ints的链表作为参数。该函数将一个新的NODE添加到列表中,设置指向int和字符串的链表的指针。

至少开始吧。如果你在任何一个函数上遇到了问题,你可以问一些关于它们的具体问题。但是,你不能只发布问题并期望有人为你编写代码,而不说你尝试了什么以及你在哪里遇到了困难。

根据我的理解:

整数列表(要存储的整数总数在节点之间会有所不同,所以我不能使用整数数组)。

似乎你想要一个数字的动态数组,你可以使用这个CCAN模块(它只是一个标题,只需删除config.h包含,你应该很好去)

NB:数字列表似乎是个坏主意,所以动态数组可能是最有效的方法。

NB2:编写自己的动态数组并不难,只需看看它的算法

最简单的用法是:

#include "darray.h"
struct node {
    char *string;
    darray(int) numbers;
};
inline void push_number(struct node *node, int number) {
    darray_push(node->numbers, number);
}

相关内容

  • 没有找到相关文章

最新更新