编写算法函数:统计链表中值为x的元素个数。 【输入形式】 第1行输入n,表示创建链表长度为n; 第2行输入n个整数,建立链表; 第3行输入整数x 【输出形式】 输出链表中值为x的元素个数。
时间: 2024-05-11 08:14:36 浏览: 67
算法函数如下:
```
int countX(Node* head, int x) {
int count = 0;
Node* p = head;
while (p != NULL) {
if (p->data == x) {
count++;
}
p = p->next;
}
return count;
}
```
其中,`Node`是链表节点的结构体,包含一个`data`成员表示节点存储的数据,一个`next`成员表示下一个节点的指针。`head`指向链表的头节点,`x`表示要统计的元素值。
算法函数的实现思路很简单,就是遍历链表,如果节点的数据等于`x`,则计数器加1。最后返回计数器的值即可。
完整代码如下:
```
#include <iostream>
using namespace std;
struct Node {
int data;
Node* next;
};
int countX(Node* head, int x) {
int count = 0;
Node* p = head;
while (p != NULL) {
if (p->data == x) {
count++;
}
p = p->next;
}
return count;
}
int main() {
int n, x;
cin >> n;
Node* head = NULL;
Node* tail = NULL;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
Node* p = new Node;
p->data = num;
p->next = NULL;
if (head == NULL) {
head = p;
tail = p;
} else {
tail->next = p;
tail = p;
}
}
cin >> x;
int count = countX(head, x);
cout << count << endl;
return 0;
}
```
阅读全文