2013-08-25 45 views
0

链表我想知道如何在C创建一个链接列表,其中每个节点有:如何创建在纯C

  • 任意长度的字符串。
  • 整数列表(整数来存储将节点之间变化的总数量,所以我不能使用整数数组)。

在此先感谢。

+3

你真的无法找到这样的例子与谷歌?我看到... – redFIVE

+2

并在第8天..他创建了[Google](http://www.google.com)。 – WhozCraig

+0

我知道如何创建单链表,其中每个节点都有任何长度的“字符串”。但我不知道如何在外部列表的每个节点内实现数字列表。 – Transfinito

回答

1

我不会写代码的你,但这里有一些步骤,让你开始。这是做到这一点的一种可能方式;根据您的实际需要,还有其他人可能会更好地工作。

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

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

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

具有第三个函数,它将NODE的链表,字符串和int s的链表作为参数。该函数将一个新NODE到列表中,设定指向的int链表和字符串。

至少开始与此有关。如果你遇到任何功能,你可以询问关于它们的具体问题。但是,你不能只是发布问题,并期望有人为你写代码,而不会说你已经尝试过什么,以及你被困在哪里。

+2

+1对于“我不会为你写代码”。编程通过实践来学习。 – andy256

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); 
} 
+0

我认为他的意思是没有“纯C”的第三方库。 – Kunal

+0

@Kunal这就是为什么我写了第二NB。 – 2013-08-26 11:52:22