CreateList(DataType *addr, unsigned int n, Node** head):根据给定的数组初始化链表 (此处数组事先设定为[0,1,2,3,4,5,6,7,8,9])
时间: 2024-09-12 09:04:03 浏览: 54
springMVC前台传数组类型,后台用list类型接收实例代码
`CreateList` 函数是一个用于初始化链表的函数,它使用给定的数组来创建链表中的节点。这个函数的原型可能如下所示:
```c
void CreateList(DataType *addr, unsigned int n, Node** head);
```
在这个函数中:
- `DataType *addr` 是一个指向数组的指针,这个数组包含了将要插入链表中的数据。
- `unsigned int n` 表示数组中元素的个数,也就是链表将要包含的节点数量。
- `Node** head` 是一个指向指针的指针,它指向链表的头节点。这样设计的原因是在函数内部,如果需要创建头节点,可以修改外部传入的头指针。
假设有一个链表节点结构体定义如下:
```c
typedef struct Node {
DataType data;
struct Node* next;
} Node;
```
那么,`CreateList` 函数的实现可能如下:
```c
void CreateList(DataType *addr, unsigned int n, Node** head) {
// 创建头节点
Node* current = malloc(sizeof(Node));
*head = current;
current->next = NULL;
// 遍历数组,创建链表节点
for (unsigned int i = 0; i < n; i++) {
Node* newNode = malloc(sizeof(Node));
newNode->data = addr[i]; // 将数组元素赋值给新节点的数据域
newNode->next = NULL;
// 将新节点链接到链表末尾
current->next = newNode;
current = newNode;
}
}
```
注意,这个函数假设在调用之前,`head` 指针已经被初始化为 `NULL`。函数的最后,`head` 指针指向链表的头节点,头节点的 `next` 指针指向第一个数据节点,每个新创建的节点的 `next` 指针都指向下一个节点,最后的节点 `next` 指针为 `NULL`。
阅读全文