removes duplicates from linked list Get link Facebook X Pinterest Email Other Apps By Admin - February 19, 2011 How will you remove duplicates from a sorted linked list. Get link Facebook X Pinterest Email Other Apps Comments AnkitApril 4, 2011 at 11:28 AM//linked list#includeusing namespace std;/*********************************************************************************/struct node{ struct node* next; int data; };/*********************************************************************************/ /*********************************************************************************/void create_linked_list(struct node** head,struct node** tail,int data){ if(*tail==NULL) { (*tail) =new node; (*tail)->next=NULL; (*tail)->data=data; *head=*tail; } else { (*tail)->next=new node; (*tail)->next->next=NULL; (*tail)->next->data=data; (*tail)=(*tail)->next; } }/*********************************************************************************/void traverse_linked_list(struct node* head){ cout<<"\n"; while(head!=NULL) { cout<data<<" "; head=head->next; } cout<<"\n"; }/*********************************************************************************/void delete_linked_list(struct node* head){ struct node* prev=head; while(head!=NULL) { prev=head; head=head->next; delete(prev); }}/*********************************************************************************/void remove_duplicates_from_sorted_list(struct node* head){ if(head->next==NULL) return; struct node* current=head->next; struct node* previous=head; while(current!=NULL) { if(current->data==previous->data) { previous->next=current->next; delete(current); current=previous->next; } else { previous=current; current=current->next; } } }/**********************************************************************************/int main(){struct node*first=NULL,*last=NULL;create_linked_list(&first,&last,6);create_linked_list(&first,&last,6);create_linked_list(&first,&last,6);create_linked_list(&first,&last,6);create_linked_list(&first,&last,6);create_linked_list(&first,&last,1);traverse_linked_list(first);remove_duplicates_from_sorted_list(first);traverse_linked_list(first);delete_linked_list(first); system("pause"); return 0; }ReplyDeleteRepliesReplyAdd commentLoad more... Post a Comment
//linked list
ReplyDelete#include
using namespace std;
/*********************************************************************************/
struct node{
struct node* next;
int data;
};
/*********************************************************************************/
/*********************************************************************************/
void create_linked_list(struct node** head,struct node** tail,int data)
{
if(*tail==NULL)
{
(*tail) =new node;
(*tail)->next=NULL;
(*tail)->data=data;
*head=*tail;
}
else
{
(*tail)->next=new node;
(*tail)->next->next=NULL;
(*tail)->next->data=data;
(*tail)=(*tail)->next;
}
}
/*********************************************************************************/
void traverse_linked_list(struct node* head)
{
cout<<"\n";
while(head!=NULL)
{
cout<data<<" ";
head=head->next;
}
cout<<"\n";
}
/*********************************************************************************/
void delete_linked_list(struct node* head)
{
struct node* prev=head;
while(head!=NULL)
{
prev=head;
head=head->next;
delete(prev);
}
}
/*********************************************************************************/
void remove_duplicates_from_sorted_list(struct node* head)
{
if(head->next==NULL)
return;
struct node* current=head->next;
struct node* previous=head;
while(current!=NULL)
{
if(current->data==previous->data)
{
previous->next=current->next;
delete(current);
current=previous->next;
}
else
{
previous=current;
current=current->next;
}
}
}
/**********************************************************************************/
int main()
{
struct node*first=NULL,*last=NULL;
create_linked_list(&first,&last,6);
create_linked_list(&first,&last,6);
create_linked_list(&first,&last,6);
create_linked_list(&first,&last,6);
create_linked_list(&first,&last,6);
create_linked_list(&first,&last,1);
traverse_linked_list(first);
remove_duplicates_from_sorted_list(first);
traverse_linked_list(first);
delete_linked_list(first);
system("pause");
return 0;
}