输入两个整数n和x,在输入n个整数,创建不带头结点的逆序单链表,统计某个整数x在链表中的出现次数。用c语言实现
时间: 2024-05-04 16:20:43 浏览: 131
创建单链表,逆序输入
以下是用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
/* 定义单链表节点 */
typedef struct Node {
int data;
struct Node *next;
} Node, *pNode;
/* 创建逆序单链表 */
pNode createList(int n) {
pNode head = NULL, p = NULL;
int i, num;
for (i = 0; i < n; i++) {
printf("请输入第%d个数字:", i + 1);
scanf("%d", &num);
/* 创建新节点 */
p = (pNode) malloc(sizeof(Node));
p->data = num;
/* 将新节点插入链表头部 */
p->next = head;
head = p;
}
return head;
}
/* 统计数字x在链表中的出现次数 */
int count(pNode head, int x) {
int cnt = 0;
pNode p = head;
while (p != NULL) {
if (p->data == x) {
cnt++;
}
p = p->next;
}
return cnt;
}
int main() {
int n, x;
printf("请输入数字个数:");
scanf("%d", &n);
pNode head = createList(n);
printf("请输入要统计的数字:");
scanf("%d", &x);
int cnt = count(head, x);
printf("数字%d在链表中出现了%d次\n", x, cnt);
return 0;
}
```
如果您不熟悉单链表的实现,可以先学习一下单链表的基本操作。
阅读全文