Member • Jul 10, 2016
what is error in below code ?
#includeThis is a snippet of code which accepts two arrays initial and target and 'm' operations in the form of R X and L X where L X is for left rotation by 1 and R X is for right rotation by 1 ,we have to output the no of operations after which initial and target array both are same , I created queues where head1 and head2 are pointers to front nodes of initial and target arrays , Now the issue is that after I scan the first operation , it stops working ,please tell the point where I am making mistake .#include struct node { int data ; struct node *next,*prev; }; int main() { int n ,m,a,count=0,i,j; char rot; scanf("%d",&n); fflush(stdin); scanf("%d",&m); fflush(stdin); printf("\n"); struct node *head1=NULL,*rear1,*ptr,*temp,*head2=NULL,*rear2; if(head1==NULL) { temp=(struct node*)malloc(sizeof(struct node)); scanf("%d ",temp->data); temp->next=NULL; head1=temp; ptr=head1; head1->prev=NULL; } for(i=1;i<=n-1;i++) { temp=(struct node*)malloc(sizeof(struct node)); scanf("%d ",temp->data); ptr->next=temp; temp->prev=ptr; ptr=temp; } rear1=ptr; temp=NULL; ptr=NULL; printf("\n"); if(head2==NULL) { temp=(struct node*)malloc(sizeof(struct node)); scanf("%d ",temp->data); temp->next=NULL; head2=temp; ptr=head2; } for(i=1;i<=n-1;i++) { temp=(struct node*)malloc(sizeof(struct node)); scanf("%d ",temp->data); ptr->next=temp; ptr=temp; ptr->next=NULL; } rear2=ptr; ptr=NULL;temp=NULL; printf("\n"); for(i=0;i next; rear1->next=ptr; rear1=ptr; head1=temp; ptr=head1; } count++; ptr=NULL; temp=NULL; if(head1->data==head2->data && rear1->data==rear2->data) { break; } } else if(rot=='R') { temp=head1; ptr=rear1->prev; for(j=0;jprev=rear1; rear1->prev->next=NULL; rear1->next=temp; head1=rear1; temp=head1; rear1=ptr; ptr=rear1->prev; } count++; temp=NULL; ptr=NULL; printf("\n"); if(head1->data==head2->data && rear1->data==rear2->data) { break; } } } printf("%d",count); return 0; }
}