void llist::deleteIth(int I, el_t& Old) { // case(exception) // --------------- if(I < 1 || I > Count) throw OutOfRange(); // case(I is the front) // -------------------- else if(I == 1) deleteFront(Old); // case(I is the rear) // ------------------- else if(I == Count) deleteRear(Old); // case(I is any node between front and rear) // ------------------------------------------ else { Node *temp = Front; Node *del; for(int j = 1; j < I - 1; j++) temp = temp->Next; del = temp->Next; Old = del->Elem; temp->Next = del->Next; delete del; Count--; } }
void deleteItem() { struct node *before; struct node *search; struct node *current; int countbefore=1; int countafter=0; int countlist=0; int countitem=0; int item=10; while(item<0||item>9) { printf("Enter number to be deleted: "); scanf("%d",&item); } current=head; while(current->next!=NULL) { current=current->next; countlist++; } //printf("%d\n",countlist); search=head; while(item!=search->data) //search for the node to be deleted { search=search->next; countitem++; } if(countitem==0) //if ang e delete kay naa sa pinaka una { deleteFront(); } else if(countitem==countlist) // if ang e delete kay naa sa pinaka tomoy { deleteRear(); } else { before=head; while(countbefore<countitem) //point the before pointer to the node before the node to be deleted { before=before->next; countbefore++; } current=before->next->next; before->next=current; //delete the node to be deleted from the list } }
void askUser() { int num; int x=10; int i; char choices; system("cls"); printf("\n[1]-DISPLAY ARRAY\n[2]-INSERT REAR\n[3]-INSERT FRONT\n[4]-INSERT INTO\n[5]-DELETE FRONT\n[6]-DELETE REAR\n[7]-DELETE ITEM\n[8]-DELETE ALL ITEM\n[9]-MAKE UNIQUE\n"); choices=getch(); switch(choices) { case '1': displayArray(); getch(); askUser(); break; case '2': num=askNum(); for(i=0;i<num;i++) { while(x<0||x>9) { printf("Enter number: "); scanf("%d",&x); } insertRear(x); x=10; displayArray(); } getch(); askUser(); break; case '3': num=askNum(); for(i=0;i<num;i++) { while(x<0||x>9) { printf("Enter number: "); scanf("%d",&x); } insertFront(x); x=10; displayArray(); } getch(); askUser(); break; case '4': displayArray(); insertInto(); displayArray(); getch(); askUser(); break; case '5': deleteFront(); displayArray(); getch(); askUser(); break; case '6': deleteRear(); displayArray(); getch(); askUser(); break; case '7': displayArray(); deleteItem(); displayArray(); getch(); askUser(); break; case '8': displayArray(); deleteAllItem(); displayArray(); getch(); askUser(); break; case '9': displayArray(); makeUnique(); displayArray(); getch(); askUser(); break; default: getch(); break; } }