c语言寻找单链表中奇数并将奇数输出;寻找偶数并将偶数输出。
时间: 2023-05-25 10:02:06 浏览: 114
A:
以下是C语言寻找单链表中奇数并将奇数输出的代码:
```
void getOdd(Node *head) {
Node *p = head;
while (p) {
if (p->data % 2 != 0) {
printf("%d ", p->data);
}
p = p->next;
}
}
```
以下是C语言寻找单链表中偶数并将偶数输出的代码:
```
void getEven(Node *head) {
Node *p = head;
while (p) {
if (p->data % 2 == 0) {
printf("%d ", p->data);
}
p = p->next;
}
}
```
其中,Node代表单链表的节点数据结构,包含data和next两个属性,head代表单链表的头节点。getOdd函数用于寻找并输出单链表中的奇数,getEven函数用于寻找并输出单链表中的偶数。
相关问题
寻找单链表中奇数并将奇数输出;寻找偶数并将偶数输出。 C语言程序
#include <stdio.h>
#include <stdlib.h>
//定义链表节点
typedef struct node {
int data;
struct node *next;
} Node;
//创建链表
Node *createList(int n) {
Node *head = NULL, *tail = NULL, *p = NULL;
int i, num;
for (i = 0; i < n; i++) {
printf("请输入第%d个节点的值:", i + 1);
scanf("%d", &num);
p = (Node *)malloc(sizeof(Node));
p->data = num;
p->next = NULL;
if (head == NULL) {
head = p;
tail = p;
}
else {
tail->next = p;
tail = p;
}
}
return head;
}
//输出链表
void printList(Node *head) {
Node *p = head;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
//输出奇数节点
void printOdd(Node *head) {
Node *p = head;
while (p != NULL) {
if (p->data % 2 != 0) {
printf("%d ", p->data);
}
p = p->next;
}
printf("\n");
}
//输出偶数节点
void printEven(Node *head) {
Node *p = head;
while (p != NULL) {
if (p->data % 2 == 0) {
printf("%d ", p->data);
}
p = p->next;
}
printf("\n");
}
int main() {
int n;
Node *head = NULL;
printf("请输入链表的节点个数:");
scanf("%d", &n);
head = createList(n);
printf("链表的值为:");
printList(head);
printf("奇数节点的值为:");
printOdd(head);
printf("偶数节点的值为:");
printEven(head);
return 0;
}
c语言根据单链表的结构,写出一个能判断出单链表中所有奇数并将奇数输出的算法jishu ( )、另一个能判断出单链表中所有偶数并将偶数输出的算法oushu。
角色扮演模式开启:
您好,我是ChitGPT,一个由CSDN开发的AI,可以回答您的问题。以下是关于单链表中奇数和偶数的算法:
算法jishu ( ):判断单链表中所有奇数并将奇数输出的算法
1. 新建一个指针变量p,初始值指向链表头部。
2. 通过while循环对链表进行遍历,条件为p不为空,因为p为空说明链表遍历完毕。遍历时每次都需要将指针p指向下一个节点。
3. 对于每个遍历到的节点,判断该节点的值是否为奇数,若是,则输出该节点的值。
4. 当链表遍历完毕后,算法结束。
具体的C语言代码如下:
void jishu(struct ListNode* head) {
struct ListNode* p = head;
while (p != NULL) {
if (p->val % 2 == 1) {
printf("%d ", p->val);
}
p = p->next;
}
}
算法oushu:判断单链表中所有偶数并将偶数输出的算法
该算法与算法jishu类似,只是对于节点的值的判断条件不同,代码如下:
void oushu(struct ListNode* head) {
struct ListNode* p = head;
while (p != NULL) {
if (p->val % 2 == 0) {
printf("%d ", p->val);
}
p = p->next;
}
}
以上是ChitGPT对于单链表中奇数和偶数的算法的回答,希望能够为您提供帮助。
阅读全文