Pages

Jun 20, 2012

wap in c++ to implement link-list.

// Following operation has been done:
1. Create
2. Insert at Beginning
3. Traverse
4. Insert at end
5. Search
6. Delete from Beginning




 #include<iostream.h>
 #include<conio.h>
 #include<alloc.h>
 #include<process.h>
 struct node
 {
 int info;
 struct node *link;
 };

 void main()
 {
 clrscr();
 void create(struct node **);
 void traverse(struct node *);
 void insbeg(struct node **,int);
 void search(struct node *,int);
 void delbeg(struct node **);
 void insend(struct node **,int);

 int item,item1,item2,choice;
 struct node *start,*ptr;

 do
{
cout<<"\n1. Create:"<<"\n2. Traverse:"
<<"\n3. Insbeg:"<<"\n4. Insend:"
<<"\n5. Search"<<"\n6. Delbeg:"
<<"\n7. Exit:\n";

cout<<"Enter ur choice:\t";
cin>>choice;
switch(choice)
{
case 1:create(&start);
break;
case 2:traverse(start);
break;
case 3:cout<<"\nenter the item to be insert:\t";
cin>>item;
insbeg(&start,item);
break;
case 5:cout<<"\nenter item to be search:\t";
cin>>item1;
search(start,item1);
break;
case 4:cout<<"\nenter item to be insert:\t";
cin>>item2;
 insend(&start,item2);
break;
case 6:delbeg(&start);
break;
}
}
 while(choice!=7);
 getch();
 }

 void create(struct node **start)
 {
 *start=NULL;
 cout<<"\nLinklist created sucessfully!\n";
 }

void traverse(struct node *start)
{
struct node *ptr;
ptr=start;
while(ptr!=NULL)
{
cout<<ptr->info<<endl;
ptr=ptr->link;
}
}

 void insbeg(struct node **start,int item)
 {
 struct node *ptr;
 ptr=(struct node *)malloc(sizeof(struct node *));
 ptr->info=item;
 if(*start==NULL)
 {
 ptr->link=NULL;
 *start=ptr;
 }
 else
 {
 ptr->link=*start;
 *start=ptr;
 }
 }

void search(struct node *start,int item1)
{
struct node *ptr;
ptr=start;
if(start==NULL)
{
cout<<"\nEmpty List\n";
getch();
exit(0);
}
else
{
while(ptr!=NULL)
{
if(ptr->info==item1)
{
cout<<"\nFound at "<<ptr;
getch();
exit(0);
}
else
{
ptr=ptr->link;
}
}

cout<<"\nElement not present\n";
}
}
 void insend(struct node **start,int item2)
 {
 struct node *ptr1,*ptr2,*save;
 ptr1=(struct node *)malloc(sizeof(struct node *));
 ptr1->info=item2;
 ptr1->link=NULL;
 ptr2=*start;
 while(ptr2!=NULL)
 {
 save=ptr2;
 ptr2=ptr2->link;
 }
 save->link=ptr1;
 }

void delbeg(struct node **start)
{
struct node *ptr;
ptr=*start;
if(*start==NULL)
{
cout<<"\nUNDERFLOW CASE\n";
getch();
exit(0);
}
else
{
*start=(*start)->link;
cout<<"\nInfo deleted\t"<<ptr->info;
cout<<endl;
}
}

No comments:

Post a Comment