c - 关于多个单链表的问题
问题描述
我正在尝试使用列表结构和节点结构创建多个单链表。我在想的是每个新列表都由不同的负责人分开。但是让我困惑的是如何为每个列表初始化一个新的头,然后添加节点?
当我只使用一个列表时,我能够为一个头指针分配内存并将其设置为 NULL,然后添加新节点。
我的结构看起来像这样供参考:
typedef struct node
{
int value;
struct node *next;
}node_t;
typedef struct list
{
struct list *head;
int size;
}list_t;
如果您觉得我对某些事情不清楚,请询问,我会澄清!谢谢
解决方案
在您的列表结构中head
,实际上应该是列表node_t
中的第一个节点。然后您将通过分配另一个节点来链接node_t
节点next
typedef struct node
{
int value;
struct node *next;
}node_t;
typedef struct list
{
node_t *head;
int size;
}list_t;
简单示例供参考:
node_t node1;
node_t node2;
node1.value = 1;
node1.next = &node2;
node2.value = 1;
node2.next = NULL;
list_t list;
list.head = &node1;
list.size = 2;
推荐阅读
- python - 如果 Keras CNN 模型是在 28x28 图像上训练的,如何准确预测更高分辨率的图像?
- javascript - 创建模块化 SVG 动画的最佳方法
- android - 在 Xamarin 中使用 Device.OpenUri(uri) 在浏览器中打开 ftp 链接时应用程序崩溃
- android - finish() 方法在 Android 中的 OptionsItemSelected 方法中不起作用
- java - 似乎无法正确反转循环输出
- elasticsearch - 如何在 Elasticsearch 中创建多类型索引?
- gradle - IntelliJ IDEA 和 Gradle 自动下载
- regex - 如何设置正则表达式的限制?(最小和最大长度)
- c# - 加入 LINQ 查询语法:将右侧移到左侧
- graphics - 给定目标点和相机向前,camera.lookAt 函数可以从角度和旋转轴计算吗?