Let us write a function that prints the number of times a number has occurred in a given linked list.
Example 1 :
Linked list : 2 6 4 4 5
Occurrence of number 4
: 2
Example 2 :
Linked list : 3 5 2 7 1 9
Occurrence of number 8
: 0
Steps :
Declare an integer variable
item
to store a number whose occurrence has to be found.Initialise an another integer variable
count
withzero(0)
to store the number of times a number has occurred i.e.,count = 0
.Declare a temporary pointer
temp
of typestruct node
for traversing a linked list.Take the input(a number whose occurrence is to be found) from the user and initialise that user input to variable
item
.Start traversing a linked list until a number equal to
item
is found.If a number equal to the
item
is found , then update count by1
.After reaching the end of linked list, print
count
and exit the function.
C program that finds the occurrence of number in a given linked list.
#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node * next;
};
void displayLL(struct node * head)
{
int num = 0;
struct node * temp;
temp = head;
temp=head;
while(temp!=0)
{
printf("%d ",temp->data);
temp = temp->next;
num++;
}
}
void occurrence(struct node *head)
{
struct node *temp = head;
int item, count = 0;
printf("\nEnter the number whose occurrence is to find : ");
scanf("%d", &item);
while(temp != NULL)
{
if(temp->data == item)
count++;
temp = temp->next;
}
printf("Occurrence of number %d : %d", item, count);
}
int main()
{
struct node *head = 0, *newnode, *temp, *slow;
int n, choice, newdata;
// Create Linked List //
printf("Enter the number of nodes in the list : ");
scanf("%d", &n);
for(int i = 1; i<=n; i++)
{
newnode = (struct node *)malloc(sizeof(struct node));
printf("Enter the data%d : ", i);
scanf("%d", &newnode->data);
newnode->next = 0;
if(head == 0)
{
head = temp = newnode;
}
else
{
temp->next = newnode;
temp = newnode;
}
}
printf("--------------------------------\n");
printf("Linked list : ");
displayLL(head);
occurrence(head);
}
I own a website www.coderlogs.com where in I write similar blogs so do visit the website for more such blog posts.
Top comments (0)