查找单链表元素的C语言代码
时间: 2023-10-01 18:11:48 浏览: 99
单链表的类型C语言源代码
以下是查找单链表元素的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
/* 定义单链表的节点结构体 */
struct ListNode {
int val;
struct ListNode *next;
};
/* 创建单链表 */
struct ListNode *createList(int *arr, int n) {
struct ListNode *head = NULL;
struct ListNode *tail = NULL;
for (int i = 0; i < n; i++) {
struct ListNode *node = (struct ListNode *)malloc(sizeof(struct ListNode));
node->val = arr[i];
node->next = NULL;
if (head == NULL) {
head = tail = node;
} else {
tail->next = node;
tail = node;
}
}
return head;
}
/* 查找单链表中是否存在指定元素 */
int searchList(struct ListNode *head, int target) {
while (head != NULL) {
if (head->val == target) {
return 1;
}
head = head->next;
}
return 0;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(int);
struct ListNode *head = createList(arr, n);
int target = 3;
int found = searchList(head, target);
printf("%d\n", found);
return 0;
}
```
该代码中,首先定义了单链表的节点结构体`struct ListNode`,包括一个`val`表示节点值和一个`next`指针表示下一个节点的地址。接着,创建了一个`createList`函数,用于创建单链表。该函数接受一个整型数组和数组长度,依次将数组中的元素加入到单链表中。最后,定义了一个`searchList`函数,用于查找单链表中是否存在指定元素。在函数中,使用`while`循环遍历单链表,若找到目标元素则返回1,否则返回0。在`main`函数中,首先创建一个整型数组并通过`createList`函数创建单链表,然后将目标元素设为3,并将`head`和`target`传入`searchList`函数中。最后,输出查找结果。
阅读全文