void sortedinsert(struct link *temp,int x) {struct link *t,*t1; while(temp->item<x) { t1=temp; temp=temp->node; } t=createnode(); insertelement(x,t); t->node=t1->node; t1->node=t; }
int main() { int x; int p=1; struct link *st,*next,*prev,*temp,*t1,*t2,*t3,*s; printf("Start creating the nodes"); st=createnode(); printf("\nEnter the item: "); scanf("%d",&x); insertelement(x,st); prev=st; while(p!=0) { next=createnode(); printf("\nEnter the item: "); scanf("%d",&x); insertelement(x,next); prev->node=next; prev=prev->node; printf("ENTER MORE(1/0)??? "); scanf("%d",&p); } temp=st; print(st); int i; x=count; struct link*z; printf("\n Enter the desired size of group,\n according to which you want to reverse link\n"); scanf("%d",&n); a=count%n; count=count-a; printf("\nThe reverse order of the linked list would be given as\n"); /* while(count!=0) { z= reverse(temp); count=count-n; } reverse(z); */ t2=NULL; t1=st; t3=st->node; while(count!=0) { for(i=0;i<n;i++) { t3=t3->node; } s=t3; t2=NULL; t1=st; t3=st->node; while(t3!=s) { t1->node=t2; t2=t1; t1=t3; t3=t3->node; } count=count-n; } /*while(t3!=NULL) { t1->node=t2; t2=t1; t1=t3; t3=t3->node; } */ t1->node=t2; prev=t1 ; print(prev); return 0; }
void main() { int x,n,y,j,i,ch=1,a,count=0; y=1; struct link *start,*next,*prev,*temp,*temp1,*t1,*t2,*t3,*inserted,*pointer; printf("Start creating the nodes"); start=createnode(); printf("\nEnter the item: "); scanf("%d",&x); insertelement(x,start); prev=start; while(y!=0) { next=createnode(); printf("\nEnter the item: "); scanf("%d",&x); insertelement(x,next); prev->node=next; prev=prev->node; printf("ENTER MORE??? "); scanf("%d",&y); } temp=start; while(temp!=NULL) { printf("\n%d",temp->item); temp=temp->node; } printf("\nProcess of insertion"); do { printf("\n 1: First position\n 2: Last position\n 3: ith position from beginning\n 4: ith position from end\n 5: Deletion of node\n 6: Reverse linking\n 7:Printing in reverse\n SELECT YOUR OPTION: "); scanf("%d",&n); switch(n) { case 1: temp=createnode(); insertelement(100,temp); temp->node=start; start=temp; prev=start; while(prev!=NULL) { printf("\n%d",prev->item); prev=prev->node; } break; case 2: temp=createnode(); insertelement(100,temp); next->node=temp; prev=start; while(prev!=NULL) { printf("\n%d",prev->item); prev=prev->node; } break; case 3: printf("\nEnter the position where you want to enter the node"); scanf("%d",&i); prev=start; for(j=1;j<i-1;j++) { if(prev==NULL) { printf("\nTHERE IS NO SUCH INDEX"); break; } prev=prev->node; temp1=prev->node; } temp=createnode(); insertelement(100,temp); prev->node=temp; temp->node=temp1; prev=start; while(prev!=NULL) { printf("\n%d",prev->item); prev=prev->node; } break; case 4: printf("\nEnter the position from the end where you want the node to appear: "); scanf("%d",&i); prev=start; temp1=start; for(j=1;j<i;j++) { prev=prev->node; } while(prev->node!=NULL) { temp1=temp1->node; prev=prev->node; } temp=createnode(); insertelement(100,temp); temp->node=temp1->node; temp1->node=temp; prev=start; while(prev!=NULL) { printf("\n%d",prev->item); prev=prev->node; } break; case 5: printf("enter the position from where you want to delete the node"); scanf("%d",&i); prev=start; for(j=1;j<i;j++) { temp=prev; prev=prev->node; } free(prev); temp->node=prev->node; prev=start; while(prev!=NULL) { printf("\n%d",prev->item); prev=prev->node; } break; case 6: t2=NULL; t1=start; t3=start->node; while(t3!=NULL) { t1->node=t2; t2=t1; t1=t3; t3=t3->node; } t1->node=t2; prev=t1 ; while(prev!=NULL) { printf("\n%d",prev->item); prev=prev->node; } break; case 7: x=reverse(start); break; } printf("\nwanna continue"); scanf("%d",&ch); } while(ch!=0); }
void main() { int x,n,y,j,i,ch=1,a,count=0; y=1; struct link *start,*next,*prev,*temp,*temp1,*t1,*t2,*t3,*inserted,*pointer; printf("Start creating the nodes"); start=createnode(); printf("\nEnter the item: "); scanf("%d",&x); insertelement(x,start); prev=start; while(y!=0) { next=createnode(); printf("\nEnter the item: "); scanf("%d",&x); insertelement(x,next); prev->node=next; prev=prev->node; printf("ENTER MORE??? "); scanf("%d",&y); } temp=start; display(temp); // PALINDROME CHECK temp=start; i=1; while(temp->node!=NULL) { temp=temp->node; i++; } temp=start; while(1) { prev=start; for(j=1;j<i;j++) prev=prev->node; if(temp->item!=prev->item) break; if(temp->node==prev||temp==prev) break; temp=temp->node; i--; } if(temp==prev) { printf("PALLINDROME\n"); } else { if(temp->item==prev->item) printf("PALLINDROME\n"); else printf("NOT PALLINDROME\n"); } }
void set(int key, int value) { insertelement(key, value); }