Documente Academic
Documente Profesional
Documente Cultură
{
sum=sum+current->mks;
current=current->next;
count++;
}
avg=(sum/(count+0.0));
cout<<"Average: "<<avg<<endl;
}
void insert(node*&,node*&,node*&,node*&);
void insert(node *¤t,node *&previous ,node *&first,node*&newdata)
{
newdata=new node;
cout<<"Enter marks to insert:";
cin>>newdata->mks;
if(newdata->mks<=first->mks)
{
newdata->next=first;
first=newdata;
}
else
{
current=previous=first;
while(current->mks<=newdata->mks)// || current!
=NULL)
{
previous=current;
current=current->next;
if(current==NULL)
break;
}
previous->next=newdata;
newdata->next=current;
}
}
void sort(node*&,node*&,node*&);
void sort(node *¤t,node *&previous ,node *&first)
{
current=first->next;
previous=first;
while(current!=NULL)
{
do
{
if(previous->mks>current->mks)
swap(previous->mks,current->mks);
current=current->next;
}while(current);
previous=previous->next;
current=previous->next;
}
}
void mydelete(node*&,node*&,node*&);
void mydelete(node *¤t,node *&previous ,node *&first)
{
int del,pos=0;
cout<<"Enter marks you want to delete:";
cin>>del;
current=previous=first;
if(del==current->mks)
first=current->next;
else
{
current=current->next;
while(current!=NULL)
{
if(current->mks!=del)
{ previous=current;
current=current->next;}
else
{ previous->next=current->next;
pos=1;
break; }
}
if(pos==0)
cout<<"your input marks to delete not found"<<endl;
else
cout<<"data deleted"<<endl;
}
}
int main()
{
node *first=NULL,*current=NULL,*previous=NULL,*newdata=NULL;
int a,b=1,sum=0,count=0;
do
{
cout<<"\n";
cout<<"\t\t\tPress 1 to Enter marks"<<endl;
cout<<"\t\t\tPress 2 to Display marks"<<endl;
cout<<"\t\t\tPress 3 to Display average"<<endl;
cout<<"\t\t\tPress 4 to Insert a marks"<<endl;
cout<<"\t\t\tPress 5 to Sort marks"<<endl;
cout<<"\t\t\tPress 6 to Delete marks"<<endl;
cout<<"\t\t\tPress 0 to Exit"<<endl;
cout<<"\n";
cout<<"Enter Your Choice:";
cin>>a;
switch(a)
{
case 1:
input(current,previous,first);
break;
case 2:
display(current,previous,first);
break;
case 3:
average(current,previous,first);
break;
case 4:
insert(current,previous,first,newdata);
display(current,previous,first);
break;
case 5:
sort(current,previous,first);
display(current,previous,first);
break;
case 6:
mydelete(current,previous,first);
display(current,previous,first);
break;
case 0:
exit(-1);
default:
cout<<"Invalid input"<<endl;
}
}while(1);
system("pause");
return 0;
}