使用c语言,定义结点类型,创建链表遍历链表。
时间: 2023-12-12 16:00:58 浏览: 163
以下是使用C语言定义链表的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 链表结点类型定义
typedef struct ListNode {
int data; // 数据域
struct ListNode* next; // 指针域
} ListNode;
// 创建链表
ListNode* createList(int* arr, int size) {
if (size == 0) {
return NULL;
}
ListNode* head = (ListNode*)malloc(sizeof(ListNode));
head->data = arr[0];
head->next = NULL;
ListNode* tail = head;
for (int i = 1; i < size; i++) {
ListNode* node = (ListNode*)malloc(sizeof(ListNode));
node->data = arr[i];
node->next = NULL;
tail->next = node;
tail = node;
}
return head;
}
// 遍历链表
void traverseList(ListNode* head) {
ListNode* node = head;
while (node != NULL) {
printf("%d ", node->data);
node = node->next;
}
printf("\n");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(int);
ListNode* head = createList(arr, size);
traverseList(head);
return 0;
}
```
在上面的代码中,我们首先定义了一个链表结点类型 `ListNode`,其包含一个整型数据域 `data` 和一个指向下一个结点的指针域 `next`。
接着,我们实现了一个 `createList` 函数来创建链表。该函数接受一个整型数组和其大小作为参数,返回一个链表的头指针。在函数中,我们首先创建头结点,并将其设置为数组的第一个元素。然后我们遍历数组中的元素,创建新的结点,并将其插入到链表的尾部。
最后,我们实现了一个 `traverseList` 函数来遍历链表。该函数接受一个链表的头指针作为参数,并输出链表中的每个元素。
在 `main` 函数中,我们先定义一个整型数组 `arr`,然后调用 `createList` 函数来创建链表,并将其头指针保存在 `head` 变量中。最后,我们调用 `traverseList` 函数来遍历并输出链表中的元素。
阅读全文