C语言初始化顺序表,将顺序表初始化为1 23 4 5
时间: 2024-10-14 15:05:54 浏览: 26
C语言实现动态顺序表的实现代码
在C语言中,如果想创建一个顺序列表(类似于数组),并将它初始化为给定的一系列数值,例如1、2、3、4、5,我们可以使用结构体和指针来实现。假设我们有一个简单的结构体`ListNode`来表示链表节点:
```c
typedef struct ListNode {
int data;
struct ListNode* next;
} ListNode;
// 初始化顺序列表
void initializeList(ListNode** head, int size, ...) {
ListNode* current = NULL; // 初始节点为空
va_list args;
va_start(args, size);
for (int i = 0; i < size; i++) {
int num = va_arg(args, int); // 从va_list获取下一个参数
ListNode* newNode = (ListNode*)malloc(sizeof(ListNode)); // 动态分配新节点内存
newNode->data = num;
newNode->next = current; // 新节点的next指向当前节点
if (!current) { // 如果这是第一个节点
*head = newNode; // 将头节点指向新节点
} else {
current->next = newNode; // 否则更新当前节点的next
}
current = newNode; // 更新当前节点为新节点
}
va_end(args);
}
```
然后你可以像下面这样调用这个函数:
```c
int main() {
ListNode* head = NULL;
initializeList(&head, 5, 1, 2, 3, 4, 5);
// 现在head指向了一个包含1到5的顺序列表
return 0;
}
```
阅读全文