C语言中链表结构体如何放入另一个结构体?
在C语言中,可以将链表结构体放入另一个结构体中,可以通过在另一个结构体中定义链表结构体的指针来实现。
下面是一个示例代码:
#include <stdio.h>
#include <stdlib.h>
// 链表结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 另一个结构体,包含链表结构体的指针
typedef struct List {
Node* head;
int size;
} List;
// 初始化链表
void initList(List* list) {
list->head = NULL;
list->size = 0;
}
// 在链表头部插入元素
void insert(List* list, int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->next = list->head;
list->head = newNode;
list->size++;
}
// 遍历链表
void traverse(List* list) {
Node* current = list->head;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
}
int main() {
List list;
initList(&list);
// 在链表中插入元素
insert(&list, 1);
insert(&list, 2);
insert(&list, 3);
// 遍历链表
traverse(&list);
return 0;
}
在这个示例中,定义了一个链表结构体Node,包含一个data字段和一个指向下一个节点的指针next。
然后定义了另一个结构体List,包含一个指向链表头部的指针head和一个表示链表大小的整数size。
通过在List结构体中定义Node的指针head,就可以将链表结构体放入另一个结构体中。
在main函数中,首先初始化了一个链表,然后通过insert函数在链表中插入元素。
最后通过traverse函数遍历链表,并打印出链表中的元素
原文地址: https://www.cveoy.top/t/topic/iIj5 著作权归作者所有。请勿转载和采集!