#include<conio.h> #include<stdio.h> struct doubly { struct doubly *front; struct doubly *back; int i; }; void main() { struct doubly *head=0; struct doubly *last=0; struct doubly *p=0; struct doubly *temp=0; int ch,intch,user,cnt=0,t,add; clrscr(); printf("\n\t 1. CREATE."); printf("\n\t 2. INSERT."); printf("\n\t 3. DELETE."); printf("\n\t 4. DISPLAY."); printf("\n\t 5.EXIT."); scanf("%d",&ch); while(ch!=5) { if(ch==1) { cnt=0; head=(struct doubly *)malloc(sizeof(struct doubly)); head->back=0; head->front=0; printf("\n\t ENTER DATA::: "); scanf("%d",&head->i); cnt++; last=head; } if(ch==2) { printf("\n\t 1. INSERTION AT FRONT."); printf("\n\t 2. INSERTION AT MIDDLE."); printf("\n\t 3. INSERTION AT END."); scanf("%d",&intch); temp=(struct doubly *)malloc(sizeof(struct doubly)); printf("\n\t ENTER DATA:::"); scanf("%d",&temp->i); if(intch==1) { temp->front=0; temp->back=head; head=temp; cnt++; } if(intch==3) { p=head; while(p->back!=0) { p=p->back; } temp->back=0; temp->front=p; p->back=temp; cnt++; } if(intch==2) { printf("\n\tNTER VALUE BETVN 1--%d",cnt); scanf("%d",&add); t=1; p=head; while(t<add) { p=p->back; t++; } temp->back=p->back; p->back->front=temp; p->back=temp; temp->front=p; } } if(ch==4) { p=head; while(p!=0) { printf("\t-->%d",p->i); p=p->back; } printf("\n\t total nodes %d",cnt); } if(ch==3) { printf("\n\t1. DELETE FRONT"); printf("\n\t2. DELETE MIDDLE"); printf("\n\t3. DELETE END"); scanf("%d",&intch); if(intch==1) { head->back=t; free(head); head=t; head->front=0; cnt--; } if(intch==3) { p=head; while(p->back!=0) { p=p->back; } temp->front=p; p->back=temp; temp->back=0; cnt--; } if(intch==2) { printf("\n\tNTER VALUE BETVN 1--%d",cnt); scanf("%d",&add); t=1; p=head; while(t<(add-1)) { p=p->back; t++; } temp=p->back; p->back=temp->back; temp->back->front=p; free(temp); } } printf("\n\t 2. INSERT."); printf("\n\t 3. DELETE."); printf("\n\t 4. DISPLAY."); printf("\n\t 5.EXIT."); scanf("%d",&ch); } getch(); }
No comments:
Post a Comment