Ok selamat pagi kawan se profesi programmer.. saya akan sharing tentang single link list ya.... disini saya akan sharing tentang single link list ircular setelah tadi pagi saya bahas siingle link list non circular.. nah ini adaah coding singlelink list circular... monggo di simak gan..
# include <iostream.h>
# include <process.h>
# include <conio.h>
# include <malloc.h>
int cur_link_list=1;
int display_menu();
struct link_list
{
int no;
struct link_list *next;
};
class link
{
link_list *list;
public:
link_list *head;
link()
{
list=NULL;
head=NULL;
}
void get_list();
void display_list();
void insert();
void delete_list();
void sort();
void merge(link_list *,link_list*);
friend void union_list(link_list *,link_list *);
friend void intersact(link_list *,link_list *);
void reverse();
};
void link :: get_list()
{
int no;
list=head;
while(list->next!=NULL)
{
list=list->next;
}
while(1)
{
cout<<"Enter Number :";
cin>>no;
if(no!=0)
{
if(list==NULL)
{
list=new link_list;
head=list;
}
list->no=no;
list->next = new link_list;
list=list->next;
}
else
{
list->next=NULL;
break;
}
}
}
void link :: display_list()
{
list=head;
cout<<endl;
if (list==NULL)
{
cout<<"Link list is empty !!!";
return;
}
while(list->next!=NULL)
{
cout<<list->no<<"\t";
list=list->next;
}
}
void link :: insert()
{
int ch;
list=head;
cout<<endl;
cout<<"[ 1 ] : Insert at First"<<endl;
cout<<"[ 2 ] : Insert in Middle"<<endl;
cout<<"[ 3 ] : Insert at Last"<<endl;
cout<<"[ 4 ] : Back to main Menu"<<endl;
cout<<"Enter your choice :";
cin>>ch;
link_list *newnode;
newnode=new link_list;
switch(ch)
{
case 1:
cout<<"Enter Number :";
cin>>newnode->no;
list=head;
if(list==NULL)
{
list=newnode;
newnode->next=NULL;
head=list;
}
else
{
newnode->next=list;
head=newnode;
}
break;
case 2: int no;
cout<<endl;
cout<<"Enter Number after which you want to insert :";
cin>>no;
list=head;
while(list->next !=NULL)
{
if(list->no==no)
{
cout<<"Enter Number to Insert :";
cin>>newnode->no;
newnode->next=list->next;
list->next=newnode;
if(list==head)
{
head=newnode;
}
return;
}
list=list->next;
}
cout<<"Key not found ..."<<endl;
break;
case 3 : list=head;
while(list->next!=NULL)
{
list=list->next;
}
cout<<"Enter Number :";
cin>>newnode->no;
if(head==NULL)
{
list=newnode;
head=list;
}
else
{
list->next=newnode;
newnode->next=NULL;
}
break;
}
}
void link :: delete_list()
{
cout<<endl;
list=head;
int no;
cout<<"Enter the number to deleted :";
cin>>no;
if(head->no==no)
{
head=head->next;
return;
}
while(list->next!=NULL)
{
if(list->next->no==no)
{
list->next=list->next->next;
return;
}
list=list->next;
}
cout<<"Number not not found !!!";
}
void link :: sort()
{
link_list *i,*j,*t;
for(i=head;i->next!=NULL;i=i->next)
{
for(j=head;j->next!=NULL;j=j->next)
{
if(i->no < j->no)
{
t->no=i->no;
i->no=j->no;
j->no=t->no;
}
}
}
}
void union_list(link_list *l1,link_list *l2)
{
cout<<endl;
link_list *h;
h=l1;
while(l1->next!=NULL)
{
cout<<l1->no<<"\t";
l1=l1->next;
}
int flag=0;
while(l2->next!=NULL)
{
l1=h;
flag=0;
while(l1->next!=NULL)
{
if(l1->no==l2->no)
{
flag=1;
break;
}
l1=l1->next;
}
if(flag==0)
{
cout<<l2->no<<"\t";
}
l2=l2->next;
}
}
void intersact (link_list *l1,link_list *l2)
{
link_list *h;
h=l2;
while(l1->next!=NULL)
{
l2=h;
while(l2->next!=NULL)
{
if(l1->no==l2->no)
{
cout<<l1->no<<"\t";
break;
}
l2=l2->next;
}
l1=l1->next;
}
}
void link :: reverse()
{
int a[50];
list=head;
int i=0;
while(list->next!=NULL)
{
a[i]=list->no;
list=list->next;
i=i+1;
}
int n=i-1;
i=n;
list=head;
while(list->next!=NULL)
{
list->no=a[i];
list=list->next;
i=i-1;
}
}
void link :: merge(link_list *l1,link_list *l2)
{
head=NULL;
list=new link_list;
while(l1->next !=NULL)
{
if(head==NULL)
{
head=list;
}
list->no=l1->no;
list->next=new link_list;
list=list->next;
l1=l1->next;
}
while(l2->next !=NULL)
{
list->no=l2->no;
list->next=new link_list;
list=list->next;
list->next=NULL;
l2=l2->next;
}
list->next=NULL;
}
void main()
{
clrscr();
link l1,l2,l3;
while(1)
{
switch(display_menu())
{
case 1: cout<<"Enter LinkList Number [ 1 , 2 , 3 ]:";
int n;
cin>>n;
if(n>=1 && n<=3)
{
cur_link_list=n;
}
break;
case 2: switch(cur_link_list)
{
case 1: l1.get_list();
break;
case 2: l2.get_list();
break;
case 3: l3.get_list();
break;
}
getch();
break;
case 3: switch(cur_link_list)
{
case 1 : l1.insert();
break;
case 2 : l2.insert();
break;
case 3 : l3.insert();
break;
}
getch();
break;
case 4: switch(cur_link_list)
{
case 1: l1.display_list();
break;
case 2: l2.display_list();
break;
case 3: l3.display_list();
break;
}
getch();
break;
case 5:
switch(cur_link_list)
{
case 1: l1.display_list();
l1.delete_list();
break;
case 2: l2.display_list();
l2.delete_list();
break;
case 3: l3.display_list();
l3.delete_list();
break;
}
getch();
break;
case 6: cout<<endl;
switch(cur_link_list)
{
case 1: l1.sort();
l1.display_list();
break;
case 2: l2.sort();
l2.display_list();
break;
case 3: l3.sort();
l3.display_list();
break;
}
cout<<endl<<endl<<"Linklist sorted !!!";
getch();
break;
case 7: cout<<endl<<endl<<"Union of First two List..."<<endl;
union_list(l1.head,l2.head);
getch();
break;
case 8:cout<<endl<<endl<<"Intersaction of First two list..."<<endl;
intersact(l1.head,l2.head);
getch();
break;
case 9: switch(cur_link_list)
{
case 1: l1.reverse();
break;
case 2: l2.reverse();
break;
case 3: l3.reverse();
break;
}
getch();
break;
case 10 : l3.merge(l1.head,l2.head);
cout<<endl;
cout<<"First two linklist merged in third link list !!!";
l3.display_list();
getch();
break;
case 11 : exit(1);
}
}
}
int display_menu()
{
clrscr();
cout<<endl;
cout<<" [ 01 ] Select Linklist (Selected List is:"<<cur_link_list<<")"<<endl;
cout<<" [ 02 ] Get Elements"<<endl;
cout<<" [ 03 ] Insert"<<endl;
cout<<" [ 04 ] Display"<<endl;
cout<<" [ 05 ] Delete"<<endl;
cout<<" [ 06 ] Sort"<<endl;
cout<<" [ 07 ] Union"<<endl;
cout<<" [ 08 ] Intersaction"<<endl;
cout<<" [ 09 ] Reverse"<<endl;
cout<<" [ 10 ] Merge Linklist"<<endl;
cout<<" [ 11 ] Exit"<<endl;
cout<<" Enter your choice :";
int ch;
cin>>ch;
return ch;
}
Single Link List Circular ( Borland C++ ) |
# include <iostream.h>
# include <process.h>
# include <conio.h>
# include <malloc.h>
int cur_link_list=1;
int display_menu();
struct link_list
{
int no;
struct link_list *next;
};
class link
{
link_list *list;
public:
link_list *head;
link()
{
list=NULL;
head=NULL;
}
void get_list();
void display_list();
void insert();
void delete_list();
void sort();
void merge(link_list *,link_list*);
friend void union_list(link_list *,link_list *);
friend void intersact(link_list *,link_list *);
void reverse();
};
void link :: get_list()
{
int no;
list=head;
while(list->next!=NULL)
{
list=list->next;
}
while(1)
{
cout<<"Enter Number :";
cin>>no;
if(no!=0)
{
if(list==NULL)
{
list=new link_list;
head=list;
}
list->no=no;
list->next = new link_list;
list=list->next;
}
else
{
list->next=NULL;
break;
}
}
}
void link :: display_list()
{
list=head;
cout<<endl;
if (list==NULL)
{
cout<<"Link list is empty !!!";
return;
}
while(list->next!=NULL)
{
cout<<list->no<<"\t";
list=list->next;
}
}
void link :: insert()
{
int ch;
list=head;
cout<<endl;
cout<<"[ 1 ] : Insert at First"<<endl;
cout<<"[ 2 ] : Insert in Middle"<<endl;
cout<<"[ 3 ] : Insert at Last"<<endl;
cout<<"[ 4 ] : Back to main Menu"<<endl;
cout<<"Enter your choice :";
cin>>ch;
link_list *newnode;
newnode=new link_list;
switch(ch)
{
case 1:
cout<<"Enter Number :";
cin>>newnode->no;
list=head;
if(list==NULL)
{
list=newnode;
newnode->next=NULL;
head=list;
}
else
{
newnode->next=list;
head=newnode;
}
break;
case 2: int no;
cout<<endl;
cout<<"Enter Number after which you want to insert :";
cin>>no;
list=head;
while(list->next !=NULL)
{
if(list->no==no)
{
cout<<"Enter Number to Insert :";
cin>>newnode->no;
newnode->next=list->next;
list->next=newnode;
if(list==head)
{
head=newnode;
}
return;
}
list=list->next;
}
cout<<"Key not found ..."<<endl;
break;
case 3 : list=head;
while(list->next!=NULL)
{
list=list->next;
}
cout<<"Enter Number :";
cin>>newnode->no;
if(head==NULL)
{
list=newnode;
head=list;
}
else
{
list->next=newnode;
newnode->next=NULL;
}
break;
}
}
void link :: delete_list()
{
cout<<endl;
list=head;
int no;
cout<<"Enter the number to deleted :";
cin>>no;
if(head->no==no)
{
head=head->next;
return;
}
while(list->next!=NULL)
{
if(list->next->no==no)
{
list->next=list->next->next;
return;
}
list=list->next;
}
cout<<"Number not not found !!!";
}
void link :: sort()
{
link_list *i,*j,*t;
for(i=head;i->next!=NULL;i=i->next)
{
for(j=head;j->next!=NULL;j=j->next)
{
if(i->no < j->no)
{
t->no=i->no;
i->no=j->no;
j->no=t->no;
}
}
}
}
void union_list(link_list *l1,link_list *l2)
{
cout<<endl;
link_list *h;
h=l1;
while(l1->next!=NULL)
{
cout<<l1->no<<"\t";
l1=l1->next;
}
int flag=0;
while(l2->next!=NULL)
{
l1=h;
flag=0;
while(l1->next!=NULL)
{
if(l1->no==l2->no)
{
flag=1;
break;
}
l1=l1->next;
}
if(flag==0)
{
cout<<l2->no<<"\t";
}
l2=l2->next;
}
}
void intersact (link_list *l1,link_list *l2)
{
link_list *h;
h=l2;
while(l1->next!=NULL)
{
l2=h;
while(l2->next!=NULL)
{
if(l1->no==l2->no)
{
cout<<l1->no<<"\t";
break;
}
l2=l2->next;
}
l1=l1->next;
}
}
void link :: reverse()
{
int a[50];
list=head;
int i=0;
while(list->next!=NULL)
{
a[i]=list->no;
list=list->next;
i=i+1;
}
int n=i-1;
i=n;
list=head;
while(list->next!=NULL)
{
list->no=a[i];
list=list->next;
i=i-1;
}
}
void link :: merge(link_list *l1,link_list *l2)
{
head=NULL;
list=new link_list;
while(l1->next !=NULL)
{
if(head==NULL)
{
head=list;
}
list->no=l1->no;
list->next=new link_list;
list=list->next;
l1=l1->next;
}
while(l2->next !=NULL)
{
list->no=l2->no;
list->next=new link_list;
list=list->next;
list->next=NULL;
l2=l2->next;
}
list->next=NULL;
}
void main()
{
clrscr();
link l1,l2,l3;
while(1)
{
switch(display_menu())
{
case 1: cout<<"Enter LinkList Number [ 1 , 2 , 3 ]:";
int n;
cin>>n;
if(n>=1 && n<=3)
{
cur_link_list=n;
}
break;
case 2: switch(cur_link_list)
{
case 1: l1.get_list();
break;
case 2: l2.get_list();
break;
case 3: l3.get_list();
break;
}
getch();
break;
case 3: switch(cur_link_list)
{
case 1 : l1.insert();
break;
case 2 : l2.insert();
break;
case 3 : l3.insert();
break;
}
getch();
break;
case 4: switch(cur_link_list)
{
case 1: l1.display_list();
break;
case 2: l2.display_list();
break;
case 3: l3.display_list();
break;
}
getch();
break;
case 5:
switch(cur_link_list)
{
case 1: l1.display_list();
l1.delete_list();
break;
case 2: l2.display_list();
l2.delete_list();
break;
case 3: l3.display_list();
l3.delete_list();
break;
}
getch();
break;
case 6: cout<<endl;
switch(cur_link_list)
{
case 1: l1.sort();
l1.display_list();
break;
case 2: l2.sort();
l2.display_list();
break;
case 3: l3.sort();
l3.display_list();
break;
}
cout<<endl<<endl<<"Linklist sorted !!!";
getch();
break;
case 7: cout<<endl<<endl<<"Union of First two List..."<<endl;
union_list(l1.head,l2.head);
getch();
break;
case 8:cout<<endl<<endl<<"Intersaction of First two list..."<<endl;
intersact(l1.head,l2.head);
getch();
break;
case 9: switch(cur_link_list)
{
case 1: l1.reverse();
break;
case 2: l2.reverse();
break;
case 3: l3.reverse();
break;
}
getch();
break;
case 10 : l3.merge(l1.head,l2.head);
cout<<endl;
cout<<"First two linklist merged in third link list !!!";
l3.display_list();
getch();
break;
case 11 : exit(1);
}
}
}
int display_menu()
{
clrscr();
cout<<endl;
cout<<" [ 01 ] Select Linklist (Selected List is:"<<cur_link_list<<")"<<endl;
cout<<" [ 02 ] Get Elements"<<endl;
cout<<" [ 03 ] Insert"<<endl;
cout<<" [ 04 ] Display"<<endl;
cout<<" [ 05 ] Delete"<<endl;
cout<<" [ 06 ] Sort"<<endl;
cout<<" [ 07 ] Union"<<endl;
cout<<" [ 08 ] Intersaction"<<endl;
cout<<" [ 09 ] Reverse"<<endl;
cout<<" [ 10 ] Merge Linklist"<<endl;
cout<<" [ 11 ] Exit"<<endl;
cout<<" Enter your choice :";
int ch;
cin>>ch;
return ch;
}
0 komentar
Posting Komentar