Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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++;
    }
            
        
}
Exemplo n.º 3
0
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;
}