单向链表的头部可以有一个数组吗? (在 C 中)
Can a singly linked list have an array in its head? (in C)
我是初学者 C 程序员。我目前正在学习 linked 列表。大多数示例解释了如何在 link 列表的每个头部存储/插入一个数据元素,如下所示:
[1],[下一个节点的地址] -> [2],[下一个节点的地址] -> [3],[下一个节点的地址] ->...。 ..
但是,我想知道是否可以在 linked 列表中存储多个元素,如下所示:
[1,2,3],[下一个节点地址] -> [4,5,6],[下一个节点地址] -> [7,8,9], [下一个节点的地址] -> .....
[ ],[ ]表示有数据的节点,link。
上述表示中的数据有3个元素以数组的形式存储。
PS:很抱歉视觉表现不佳。
TIA
是的,您可以在链接列表中存储任何内容。要存储不同类型的变量,需要使用struct。对于每个节点,您需要为其分配足够的内存。让我们举个例子,你想在一个结构中存储一个数组 int[10] 。那么这将是您的节点:
struct node
{
int array[10]
struct node * next;
};
分配足够space:
struct Node* node = (struct Node*)malloc(sizeof(struct Node));
然后您可以通过以下方式访问节点数组:
node.array[0] = 10;
node.array[1] = 11;
等等
是的,你可以在链表的每个节点中有多个数据。一个例子是-
typedef struct node{
int val;
int val2;
int array[30];
char x;
struct node *next;
}node;
你可以像这样访问数组-
n.array[index] // by node variable(n is a variable name)
n->array[index] // by node pointer(n is a node pointer)
我是初学者 C 程序员。我目前正在学习 linked 列表。大多数示例解释了如何在 link 列表的每个头部存储/插入一个数据元素,如下所示:
[1],[下一个节点的地址] -> [2],[下一个节点的地址] -> [3],[下一个节点的地址] ->...。 ..
但是,我想知道是否可以在 linked 列表中存储多个元素,如下所示:
[1,2,3],[下一个节点地址] -> [4,5,6],[下一个节点地址] -> [7,8,9], [下一个节点的地址] -> .....
[ ],[ ]表示有数据的节点,link。 上述表示中的数据有3个元素以数组的形式存储。
PS:很抱歉视觉表现不佳。
TIA
是的,您可以在链接列表中存储任何内容。要存储不同类型的变量,需要使用struct。对于每个节点,您需要为其分配足够的内存。让我们举个例子,你想在一个结构中存储一个数组 int[10] 。那么这将是您的节点:
struct node
{
int array[10]
struct node * next;
};
分配足够space:
struct Node* node = (struct Node*)malloc(sizeof(struct Node));
然后您可以通过以下方式访问节点数组:
node.array[0] = 10;
node.array[1] = 11;
等等
是的,你可以在链表的每个节点中有多个数据。一个例子是-
typedef struct node{
int val;
int val2;
int array[30];
char x;
struct node *next;
}node;
你可以像这样访问数组-
n.array[index] // by node variable(n is a variable name)
n->array[index] // by node pointer(n is a node pointer)