微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单向链表的头部可以有数组吗? 在 C 中

如何解决单向链表的头部可以有数组吗? 在 C 中

我是一名初学 C 程序员。我目前正在学习链表。大多数示例解释了如何在链接列表的每个头部存储/插入一个数据元素,如下所示:

[1],[下一个节点的地址] -> [2],[下一个节点的地址] -> [3],[下一个节点的地址] ->......

但是,我想知道是否可以在链表中存储多个元素,如下所示:

[1,2,3],[下一个节点的地址] -> [4,5,6],[下一个节点的地址] -> [7,8,9],[下一个节点的地址节点] -> .....

[ ],[ ] 代表一个有数据和链接的节点。 上述表示中的数据以数组的形式存储了 3 个元素。

PS:抱歉,视觉表现不佳。

TIA

解决方法

是的,链表的每个节点可以有多个数据。一个例子是-

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)
,

是的,您可以在链接列表中存储任何内容。要存储不同类型的变量,您需要使用 struct。并且对于每个节点,您需要为其分配足够的内存。让我们举个例子,你想在一个结构体中存储一个数组 int[10]。那么这将是您的节点:

struct node
{
    int array[10]
    struct node * next;
};

要分配足够的空间:

struct Node* node = (struct Node*)malloc(sizeof(struct Node)); 

然后您可以通过以下方式访问节点数组:

node.array[0] = 10;
node.array[1] = 11;

等等

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。