Ejemplo n.º 1
0
void del_at_nth()
{
    int del_pos, i_dan;
    struct node *trav_del, *temp_del_nth;
    
    printf("Enter the position :- ");
    scanf("%d", &del_pos);
    
    if (del_pos > count || del_pos < 0)
        printf("Position exceeds/is less than number of elements !\n");
    else if (del_pos == 1)
        del_at_first();
    else if (del_pos == count)
        del_at_end();
    else
    {
        trav_del = head;
        for (i_dan = 0; i_dan < del_pos-2; i_dan++)
            trav_del = trav_del->next;
        temp_del_nth = trav_del->next;
        trav_del->next = temp_del_nth->next;
        temp_del_nth->next->prev = trav_del;
        printf("\n\nDELETED %d FROM %dth POSITION !\n", temp_del_nth->data, del_pos);
        free(temp_del_nth);
        count--;
    }

}
Ejemplo n.º 2
0
    virtual llvm::MemoryBuffer* getObject(const llvm::Module* M) {
        assert(!loaded);
        loaded = true;
        g.engine->setObjectCache(NULL);
        std::unique_ptr<MyObjectCache> del_at_end(this);

#if 0
        if (!USE_STRIPPED_STDLIB) {
            stajt = STDLIB_CACHE_START;
            size = (intptr_t)&STDLIB_CACHE_SIZE;
        } else {
            start = STRIPPED_STDLIB_CACHE_START;
            size = (intptr_t)&STRIPPED_STDLIB_CACHE_SIZE;
        }
#else
        RELEASE_ASSERT(0, "");
        char* start = NULL;
        intptr_t size = 0;
#endif

        // Make sure the stdlib got linked in correctly; check the magic number at the beginning:
        assert(start[0] == 0x7f);
        assert(start[1] == 'E');
        assert(start[2] == 'L');
        assert(start[3] == 'F');

        assert(size > 0 && size < 1 << 30); // make sure the size is being loaded correctly

        llvm::StringRef data(start, size);
        return llvm::MemoryBuffer::getMemBufferCopy(data, "");
    }
int main(int, char**)
{
    std::deque<int> queue;
    for (int i = 0; i < 20; ++i)
        queue.push_back(i);

    while (queue.size() > 1)
    {
        del_at_start(queue);
        del_at_end(queue);
        queue.pop_back();
    }

  return 0;
}
Ejemplo n.º 4
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;
}