用DevC++编程:初始化链表,假设已经有一个名为head的全局变量指向链表头
时间: 2024-10-16 11:06:37 浏览: 29
在DevC++中,初始化链表通常涉及到一个全局变量`head`,它是一个指向链表头部的指针。如果你已经有了一个空链表,即`head`指向`nullptr`,你可以通过循环遍历数组并将每个元素插入链表来实现初始化。这里有一个简单的示例,假设你有一个包含整数的数组`arr[]`和其长度`n`:
```cpp
#include <iostream>
// ... (之前定义的链表节点结构)
// 初始化链表函数
void initializeLinkedList(int arr[], int n, Node*& head) {
// 确保全局的head指针为nullptr,表示链表为空
if (head == nullptr) {
head = new Node();
head->data = arr[0]; // 设置初始节点的数据
head->next = nullptr;
} else {
// 非空链表,从第二个元素开始添加
for (int i = 1; i < n; i++) {
Node* newNode = new Node();
newNode->data = arr[i];
newNode->next = nullptr;
// 将新节点添加到链表尾部
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
}
// 使用这个函数时,传递head指针
void main() {
int arr[] = {1, 2, 3, 4, 5}; // 示例数组
int n = sizeof(arr) / sizeof(arr[0]); // 数组长度
Node* head; // 假设head已存在且为nullptr
initializeLinkedList(arr, n, head); // 初始化链表
// ... (后续可以调用printList(head) 和 getMax(head) 函数)
delete head; // 注意释放动态分配的内存,防止内存泄漏
}
```
在这个例子中,`initializeLinkedList`函数负责将数组的元素逐个添加到链表中。
阅读全文