theme

" जीतने वाले छोड़ते नहीं और छोड़ने वाले जीतते नही "

Friday, May 28, 2010

circular linkedlist

#include #include struct node { int data; struct node *next; }*start,*last,*newnode,*p,*ptr; void main() { int ch; clrscr(); do { printf("**********MAIN MENU***********"); printf("\n1.add start"); printf("\n2.add middle"); printf("\n3.addlast"); printf("\n4.delete"); printf("\n5.show"); printf("\n6.count"); printf("\n7.search"); printf("\n8.sort"); printf("\n9.exit"); scanf("%d",&ch); switch(ch) { case 1 : addstart();break; case 2 : addmiddle();break; case 3 : addlast();break; case 4 : deldata();break; case 5 : show();break; case 6 : count();break; case 7 : search();break; case 8 : sort();break; case 9 : break; default:printf("wrong choice");break; } }while(ch!=9); } addstart() { struct node *newnode; newnode=(struct node*)malloc(sizeof(struct node)); printf("enter the data"); scanf("%d",&newnode->data); newnode->next=NULL; if(start==NULL) { start=newnode; last=newnode; } else { newnode->next=start; start=newnode; last->next=newnode; } } addlast() { struct node *newnode; newnode=(struct node*)malloc(sizeof(struct node)); printf("enter the data"); scanf("%d",&newnode->data); newnode->next=NULL; if(start==NULL) { start=newnode; last=newnode; } else { last->next=newnode; last=newnode; newnode->next=start; } } show() { p=start; do { printf("%d",p->data); p=p->next; }while(p!=start); } count() { int c=0; p=start; do { c++; p=p->next; }while(p!=start); printf("%d",c); } addmiddle() { int n; struct node *newnode; newnode=(struct node*)malloc(sizeof(struct node)); printf("enter the data"); scanf("%d",&newnode->data); newnode->next=NULL; if(start==n) { start=newnode; last=newnode; } else { printf("enter data after which u want to add"); scanf("%d",&n); p=start; do { if(p->data==n) { newnode->next=p->next; p->next=newnode; break; } p=p->next; }while(p!=start); } } search() { int n,flag=0,c=0; printf("enter data to search"); scanf("%d",&n); p=start; do { if(p->data==n) { flag=1; c++; break; } c++; } while(p!=start); if(flag==1) { printf("found on %d",c); } else printf("not found"); } deldata() { int n; printf("enter no to delete"); scanf("%d",&n); if(start==NULL) printf("no any data to dalete"); else { p=start; ptr=start; } do { if(p->data==n) { if(p==start) { start=start->next; last->next=start; free(p); break; } else if(p==last) { last=ptr; ptr=start; free(p); break; } else { ptr->next=p->next; free(p); break; } } ptr=p; p=p->next; }while(p!=start); } sort() { int t; p=start; do { ptr=start; do { if(ptr->data>ptr->next->data) { t=ptr->data; ptr->data=ptr->next->data; ptr->next->data=t; } ptr=ptr->next; }while(ptr->next!=start); p=p->next; }while(p!=start); }

No comments:

Post a Comment