12
作者:
xxdmd8
,
2024-12-19 23:15:23
,
所有人可见
,
阅读 6
LF_查找某数据在单链表中出现的次数
【问题描述】接收输入数据创建一个带头结点的单链表,查找某数据在此单链表中出现的次数并输出。
【输入形式】
【输出形式】
【样例输入】5//链表中数据的数量
521 3 9 48 6 //链表中的数据元素
9 //待查找元素
【样例输出】1 //待查找元素出现的次数
#include<iostream>
using namespace std;
struct ListNode{
int val;
ListNode* next;
};
typedef ListNode* LinkList;
void createList(LinkList& L,int m){
L = new ListNode;
ListNode* r = L;
int x;
for(int i = 0;i < m;i ++){
cin >> x;
ListNode* s = new ListNode;
s->val = x;
s->next = nullptr;
r->next = s;
r = s;
}
}
void printList(LinkList L){
ListNode* p = L->next;
while(p){
cout << p->val << " ";
p = p->next;
}
}
void deleteList(LinkList& L){
ListNode* p = L->next;
while(p){
ListNode* s = p;
p = p->next;
delete s;
}
delete L;
}
int findCount(LinkList& L,int tar){
int cnt = 0;
ListNode* p = L->next;
while(p){
if(p->val == tar) cnt ++;
p = p->next;
}
return cnt;
}
int main(){
int m;
cin >> m;
LinkList L = nullptr;
createList(L, m);
int tar;
cin >> tar;
cout << findCount(L, tar);
//printList(L);
deleteList(L);
return 0;
}