int main ( int argc, char * args[]) { node *head = NULL; head = delete_at_end(head); head = delete_at_first(head); head = delete_at_position(head, 66); head = insert_at_position (head, 2, 5 ); head = insert_at_first (head, 4 ); head = insert_at_position (head, 2, 3 ); head = insert_at_position (head, 2, 2 ); head = insert_at_position (head, 2, 1 ); print_linked_list (head); head = delete_at_first(head); head = delete_at_end(head); head = delete_at_position (head, 2); head = delete_at_position (head, 2); head = delete_at_position (head, 2); print_linked_list (head); printf ("the length is %d\n" ,length_linked_list(head)); //printf ("successfully deleted list : %d\n", purge_linked_list(head)); return SUCCESS; }
void insert_at_nth(int input_nth) { int pos, i_ian; struct node *trav, *temp; printf("Enter the position :- "); scanf("%d", &pos); if (pos > count+1 || pos < 0) printf("Position exceeds/is less than number of elements !\n"); else if (pos == 1) insert_at_first(input_nth); else if (pos == count +1) insert_at_end(input_nth); else { struct node *ins_nth = (struct node *)malloc(sizeof(struct node)); ins_nth->data = input_nth; trav = head; for (i_ian = 0; i_ian < pos-2; i_ian++) trav = trav->next; temp = trav->next; trav->next = ins_nth; temp->prev = ins_nth; ins_nth->next = temp; ins_nth->prev = trav; count++; } }
int main(int argc, char **argv) { int choice, insert_first, insert_end, insert_nth, search_num; struct node *temp_reverse; do { printf("\n\n<< DOUBLY LINKED-LIST CONTROL >>\n\n"); printf("Enter 1 to INSERT AT BEGINNING\n"); printf("Enter 2 to INSERT AT END\n"); printf("Enter 3 to INSERT AT Nth POSITION\n"); printf("-----------------------------------\n"); printf("Enter 4 to DISPLAY FROM BEGINNING\n"); printf("Enter 5 to DISPLAY FROM END\n"); printf("-----------------------------------\n"); printf("Enter 6 to DELETE FROM BEGINNING\n"); printf("Enter 7 to DELETE FROM END\n"); printf("Enter 8 to DELETE FROM Nth POSITION\n"); printf("-----------------------------------\n"); printf("Enter 9 to SEARCH IN THE LIST\n"); printf("-----------------------------------\n\n"); printf("Enter 10 for << DOUBLY LINKED-LIST REVERSAL >>\n\n"); printf("----------------------------------------\n"); printf("Enter 0 to EXIT\n\n"); scanf("%d",&choice); switch(choice) { case 1: printf("\nEnter a number :- "); scanf("%d", &insert_first); insert_at_first(insert_first); break; case 2: printf("\nEnter a number :- "); scanf("%d", &insert_end); insert_at_end(insert_end); break; case 3: printf("\nEnter a number :- "); scanf("%d", &insert_nth); insert_at_nth(insert_nth); break; case 4: printf("\nDISPLAYING FROM BEGINNING:-\n\n"); display_frm_beg(); printf("\nTotal elemnts = %d\n", count); break; case 5: printf("\nDISPLAYING FROM END:-\n\n"); if(head == NULL) { printf("List is empty !\n"); printf("\nTotal elemnts = %d\n", count); } else { display_frm_end(head); printf("\nTotal elemnts = %d\n", count); } break; case 6: del_at_first(); break; case 7: del_at_end(); break; case 8: del_at_nth(); break; case 9: printf("\nEnter a number :- "); scanf("%d", &search_num); search(search_num); break; case 10: if(head == NULL) printf("List is empty !\n"); else { reverse(head); temp_reverse = head; head = tail; tail = temp_reverse; printf("List Reversed !\n"); } break; default: if (choice != 0) printf("\nWrong choice selected ! TRY AGAIN !\n"); break; } }while(choice != 0); return 0; }