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--; } }
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; }
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; }