int main(void) { struct Node *head = NULL; addEnd(&head, 15); addEnd(&head, 25); addBegin(&head, 14); addAt(&head, 22, 1); addAt(&head, 30, 4); addAt(&head, 30,4); struct Node *itr = head; while (itr != NULL) { printf("%d\n", itr->data); itr = itr->next; } puts(""); deleteAt(&head, 6); itr = head; while (itr != NULL) { printf("%d\n", itr->data); itr = itr->next; } return 0; }
int main(int argc,char* argv[]){ vector* vec = createVector(); printf("\nnew vector-pointer generated\n\n"); writeVector(vec,argv[1]); printVector(vec); int searchResult = search(vec,10); printf("%d\n\n",searchResult); data* newData1 = createData(51,44,19.290122); addBegin(vec,newData1); printf("new data added to beginning\n\n"); data* newData2 = createData(10,59,82.430034); addNpos(vec,newData2,6); printf("new data added to position 6\n\n"); searchResult = search(vec,10); printf("%d\n\n",searchResult); printVector(vec); freeVector(vec); printf("vector freed\n"); return 0; }
void addSorted(List* l, Node* n){ if(isEmpty(l)){ add(l,n); return; }else{ Node* aux = l->begin; if(n->value < (l->begin)->value){ addBegin(l,n); return; } if(n->value > (l->end)->value){ add(l,n); return; } while(aux != NULL){ if(aux->value < n->value && (aux->next)->value > n->value){ Node* aux1 = aux->next; aux->next = n; n->next = aux1; (l->numberOfElements)++; return; }else{ aux = aux->next; } } } }
int menuList() { setlocale(LC_ALL, "Rus"); node_list *begin = NULL; node_list *end = NULL; int m; while (1) { system("CLS"); cout << "Работа со списком:\t\t\t"; cout << endl << endl << endl; cout << "1. Добавить в начало." << endl << endl; cout << "2. Добавить в конец." << endl << endl; cout << "3. Добавить после элемента равного n." << endl << endl; cout << "4. Добавить перед элементом равным n." << endl << endl; cout << "5. Удалить элемент равный n." << endl << endl; cout << "6. Сортировка." << endl << endl; cout << "7. Вывести список." << endl << endl; cout << "0. Выход." << endl << endl; cout << "Выберете пункт меню: "; while (scanIntVal(m) || (m < 0) || (m > 7)) { cout << "\nОшибка. Попробуйте еще раз.\n\nВыберете пункт меню: "; } cout << endl; switch (m) { case 1: { int a; while (1) { cout << "Введите значение: "; if (scanIntVal(a)) { cout << "\nОшибка. Попробовать еще раз? (Y/N) -->"; if (scanYesNo()) { continue; } else { break; } } addBegin(a, begin, end); cout << "Добавить еще значение? (Y/N) -->"; if (!scanYesNo()) { break; } } break; } case 2: { int a; while (1) { cout << "Введите значение: "; if (scanIntVal(a)) { cout << "\nОшибка. Попробовать еще раз? (Y/N) -->"; if (scanYesNo()) { continue; } else { break; } } addEnd(a, begin, end); cout << "Добавить еще значение? (Y/N) -->"; if (!scanYesNo()) { break; } } break; } case 3: { int n, val; while (1) { cout << "Введите значение, которое нужно добавить: "; if (scanIntVal(val)) { cout << "\nОшибка. Попробовать еще раз? (Y/N) -->"; if (scanYesNo()) { continue; } else { break; } } cout << "Введите значение, после которого добавить: "; if (scanIntVal(n)) { cout << "\nОшибка. Попробовать еще раз? (Y/N) -->"; if (scanYesNo()) { continue; } else { break; } } if (addAfter(val, n, begin, end)) { cout << endl << endl << "Список пуст или такого элемента в нем нет." << endl << endl; cout << "1. Добавить в начало." << endl << endl; cout << "2. Добавить в конец." << endl << endl; cout << "3. Попробовать еще раз." << endl << endl; cout << "0. Ничего не делать." << endl << endl; cout << "Выберете пункт меню: "; int q; while (scanIntVal(q) || (q < 0) || (q > 3)) { cout << "\nОшибка. Попробуйте еще раз.\n\nВыберете пункт меню: "; } cout << endl; switch (q) { case 1: { addBegin(val, begin, end); break; } case 2: { addEnd(val, begin, end); break; } case 3: { continue; break; } default: { } } break; } else { break; } } break; } case 4: { int n, val; while (1) { cout << "Введите значение, которое нужно добавить: "; if (scanIntVal(val)) { cout << "\nОшибка. Попробовать еще раз? (Y/N) -->"; if (scanYesNo()) { continue; } else { break; } } cout << "Введите значение, перед которым добавить: "; if (scanIntVal(n)) { cout << "\nОшибка. Попробовать еще раз? (Y/N) -->"; if (scanYesNo()) { continue; } else { break; } } if (addBefore(val, n, begin, end)) { cout << endl << endl << "Список пуст или такого элемента в нем нет." << endl << endl; cout << "1. Добавить в начало." << endl << endl; cout << "2. Добавить в конец." << endl << endl; cout << "3. Попробовать еще раз." << endl << endl; cout << "0. Ничего не делать." << endl << endl; cout << "Выберете пункт меню: "; int q; while (scanIntVal(q) || (q < 0) || (q > 3)) { cout << "\nОшибка. Попробуйте еще раз.\n\nВыберете пункт меню: "; } cout << endl; switch (q) { case 1: { addBegin(val, begin, end); break; } case 2: { addEnd(val, begin, end); break; } case 3: { continue; break; } default: { } } break; } else { break; } } break; } case 5: { if (!begin) { print(begin); system("PAUSE"); break; } int a; while (1) { cout << "Введите значение, которое нужно удалить: "; if (scanIntVal(a)) { cout << "\nОшибка. Попробовать еще раз? (Y/N) -->"; if (scanYesNo()) { continue; } else { break; } } if (erase(a, begin, end)) { cout << "Такого значение в списке нет. Попробовать еще раз? (Y/N) -->"; if (scanYesNo()) { continue; } else { break; } } cout << "Элемент со значением " << a << " удален." << endl << endl; cout << "Удалить еще? (Y/N) -->"; if (!scanYesNo()) { break; } } break; } case 6: { if (!sorting(begin, end)) { cout << "Отсортированный список:" << endl << endl; print(begin); } else { cout << "Ошибка!! Добавьте больше элементов." << endl << endl; } system("PAUSE"); break; } case 7: { print(begin); system("PAUSE"); break; } default: { while (begin) { node_list *temp = (*begin).next; delete begin; begin = temp; } return 0; } } } }