Q1
unknown
c_cpp
3 years ago
1.7 kB
14
Indexable
#include <iostream>
using namespace std;
struct data
{
float mark;
data *next;
};
void push(data **head, data** tail, float mark)
{
data* n = new data();
n->mark = mark;
n->next = NULL;
/*insertion process*/
if(*head == NULL)
*head = *tail = n;
else
{
(*tail)->next = n;
*tail = n;
}
}
void grading(data *head)
{
data *p;
int l,g;
p=head;
cout << "The gradings: " << endl;
while(p != NULL)
{
cout << endl;
cout << "Grading : " << p-> mark;
if((p->mark>=50.0))
{
cout << " (Pass) "<< endl;
l++;
}
else if((p->mark<50.0))
{
cout << " (Fail) "<< endl;
g++;
}
p=p->next;
}
cout << "Total Pass: " << l << " students." <<endl;
cout << "Total Fail: " << g-1 << " students." <<endl;
}
void pop(data **head, data **tail)
{
data *p;
while(*head!=NULL)
{
p = *head;
*head = p->next;
free(p);
if (*head == NULL)
{
*tail ==NULL;
}
}
if(*head ==NULL)
{
cout<<"Queue is empty";
}
}
int main()
{
data *head = NULL, *tail=NULL;
int size;
float mark;
cout<<"Enter total data to insert: ";
cin>> size;
for(int i = 1; i<=size; i++)
{
cout<<"Enter mark : ";
cin>>mark;
push(&head,&tail,mark);
}
grading (head);
cout<<"Removing all marks..."<< endl;
pop(&head,&tail);
cout<<"\nEnd of program";
return 0;
}Editor is loading...