C语言代码实现单链表统计偶数个数
时间: 2024-10-15 18:26:34 浏览: 29
C语言单链表实现19个功能完全详解.zip_C语言_C语言单链表_单链表
5星 · 资源好评率100%
在C语言中,我们可以使用结构体来表示链表节点,并添加一个布尔值字段来标记每个节点的元素是否为偶数。下面是一个简单的示例,演示了如何遍历单链表并统计偶数个数:
```c
#include <stdio.h>
#include <stdbool.h>
// 定义链表节点结构
typedef struct Node {
int data;
bool is_even; // 标记元素是否为偶数
struct Node* next;
} Node;
// 初始化新节点
Node* create_node(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode) {
newNode->data = value;
newNode->is_even = value % 2 == 0; // 判断是否为偶数
newNode->next = NULL;
}
return newNode;
}
// 遍历链表并统计偶数个数
int count_even_nodes(Node* head) {
int even_count = 0;
Node* curr = head;
while (curr != NULL) {
if (curr->is_even)
even_count++;
curr = curr->next;
}
return even_count;
}
int main() {
Node* list_head = create_node(1); // 创建链表头节点,假设后续可以添加更多节点
// ... 连接其他节点 ...
int total_even = count_even_nodes(list_head);
printf("链表中有%d个偶数。\n", total_even);
return 0;
}
```
在这个例子中,我们首先创建了一个链表节点结构,然后在`create_node`函数中初始化新的节点,并设置其`is_even`标志。`count_even_nodes`函数遍历整个链表,每遇到一个`is_even`为`true`的节点就增加计数。
阅读全文