forked from SAMYAK99/CS-180
-
Notifications
You must be signed in to change notification settings - Fork 0
/
key.c
93 lines (81 loc) · 1.53 KB
/
key.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*WAP in C to count the number of times a given key occurs in a linked list.
Also, find the percentage of the occurrence otherwise display an appropriate message.*/
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next,*prev;
};
struct node *head,*temp,*newnode;
int count=0;
void create();
void display();
void occurence(int);
int main()
{
int n;
create();
display();
printf("\n\nEnter a number to get the occurence: ");
scanf("%d", &n);
occurence(n);
}
void create()
{
char flag;
printf("Enter the elements of the Linked List:\n\n");
do{
newnode = (struct node *)malloc(sizeof(struct node));
if(head==NULL){
printf("Enter data: ");
scanf("%d", &newnode->data);
head=newnode;
temp=newnode;
temp->next=NULL;
temp->prev=NULL;
count++;
}
else
{
printf("Enter data: ");
scanf("%d", &newnode->data);
temp->next=newnode;
newnode->prev=temp;
temp=newnode;
temp->next=NULL;
count++;
}
printf("Do you want to continue(y/n)? ");
scanf(" %c",&flag);
getchar();
}
while(flag='y' && flag!='n');
}
void display()
{
printf("\nThe List is Diplaying: \n");
temp=head;
while(temp!=NULL)
{
printf(" %d ", temp->data);
temp=temp->next;
}
}
void occurence(int n)
{
temp=head;
float counter;
while(temp!=NULL)
{
if(temp->data==n)
{
counter++;
}
temp=temp->next;
}
if(counter!=0)
printf("\nPercentage occurence of %d is %.2f", n,(counter/count)*100);
else
printf("\nThe Entered element is not found in the list!");
}