123 Eng

### Engineering the engineers™

Home
Source Codes
Engineering Colleges

Training  Reports
Seminar Reports
Placement Papers

Forums

Computer Science / IT
Electronics
Electrical
Mechanical
Chemical
Civil

CAT / MBA

GMAT / Foreign MBA
Latest Jobs

Displaying  Source Code(s)

 Reversal of a singly linklist by recursion. -------------------------------------------------------------------------------- Description : The above code is used to reverse a singly link-list by recursion #include #include #include struct node { int data; struct node*next; }; void insert(struct node**p,int num) /*Function for inserting an element into a list */ { if(*p==NULL) { (*p)=(struct node*)malloc(sizeof(struct node)); (*p)->next=NULL; (*p)->data=num; } else { insert(&((*p)->next),num); } } void display(struct node*p) /*Function for displaying the list*/ { while(p!=NULL) { printf("%d ",p->data); p=p->next; } } void reverse(struct node**p) /*Function for reversing the list by recursion */ { struct node*q,*r,*x; int d; q=(*p); /*stores the address of the first element */ x=q; /*also stores the element of the first element for counter pourpose */ d=q->data; /*stores the data of the first element*/ r=q->next; /*stores the address of the second element in the list */ free(q); /*deletes the first element of the list*/ if(x==NULL) return ; else { reverse(&(r));/*Recursive call*/ insert(p,d); /*This function is put in the stack so the first will be taken as last element for the new list */ } } void main() { clrscr(); struct node*p=NULL; int n,d,i=0; printf("How many...? "); scanf("%d",&n); while(i++!=n) { scanf("%d",&d); insert(&p,d); } display(p); reverse(&p); printf(" The reversed list is..."); display(p); getch(); }

Contribute content or training reports / feedback / Comments
job placement papers