我想知道如何在C中创建单个链表,其中每个节点都有:
提前致谢。
答案 0 :(得分:1)
我不打算为你编写代码,但这里有一些步骤可以帮助你入门。这是一种可行的方法;根据您的实际需要,还有其他可能会更好的工作。
首先,确定您的数据结构。你需要两个。第一个是整数的链表。第二个是包含字符串和列表的链表。以下是后者中节点的外观:
typedef struct node {
char* someStr;
LIST* integerList;
struct node* next;
} NODE;
然后,有一个函数创建整数链表。有另一个为字符串分配内存并返回char*
的函数。
有第三个函数,它将NODE
的链接列表,字符串和int
的链接列表作为参数。此函数将新NODE
附加到列表,设置指向int
链接列表和字符串的指针。
至少开始这个。如果您遇到任何功能,可以询问有关它们的具体问题。但你不能只是发布问题,并希望有人为你编写代码,而不是说你尝试了什么,你在哪里被困。
答案 1 :(得分:0)
据我所知:
整数列表(要存储的整数总数因节点而异,所以我不能使用整数数组。)
似乎你想要一个数字的动态数组,你可以使用This CCAN Module(它只是一个标题,只需删除config.h包含你就应该好了)
NB :数字列表似乎是一个坏主意,因此动态数组可能是最有效的方法。
NB2 :编写自己的动态数组并不难,只需查看it's algorithm
最简单的用法是:
#include "darray.h"
struct node {
char *string;
darray(int) numbers;
};
inline void push_number(struct node *node, int number) {
darray_push(node->numbers, number);
}