An open API service indexing awesome lists of open source software.

https://github.com/radiumbyte/team-task-qt-first

Linked list with iterator and Qt unit-tests.
https://github.com/radiumbyte/team-task-qt-first

Last synced: 2 months ago
JSON representation

Linked list with iterator and Qt unit-tests.

Awesome Lists containing this project

README

          

# Team-Task-Qt-First
First task in C++/Qt: linked list with iterator and unit-test.
Creators:Антон Федяшов 2 курс 3 группа
Теплюков Денис 2 курс 4 группа

Индивидуальное задание Вариант №3
Двусвязный список с внешним итератором
Класс DList содержит методы:
void push_back(const int &x);//Добавление элемента в конец списка
void push_front(const int &x);//Добавление элемента в начало списка
bool is_empty();//Проверка списка на пустоту
void pop_back();//Удаление элемента с конца
void pop_front();//Удаление элемента с начала
int back() const;//Значение конца списка
int front() const;//Значение начала списка
void erase();//Очистка списка
Поддерживаются следующие перегрузки:<<,==

Вложенный класс DIterator содержит методы:
DIterator begin();//Возвращает итератор на начало списка
DIterator end();//Возвращает итератор на конец списка(вообще говоря nullptr)
DIterator find(const int &x);//Возвращает итератор на искомый элемент
DIterator findFEGG(const int &x);//Возвращает итератор на первый элемент больше заданного
void insert_after(const DIterator &it, const int &x);//Вставка после целевого элемента
void insert_before(const DIterator &it, const int &x);//Вставка до целевого элемента
void remove(const DIterator &it);//Удаление элемента, на который указывает итератор
Поддерживаются следующие перегрузки:==,!=,>,<,++(инкремент),++(декремент),--(инкремент),--(декремент),*

Для классов DList и DIterator реализованы QtTest
Ниже перечень для обоих классов:
//DList
void push_back();
void push_front();
void is_empty();
void pop_back();
void pop_front();
void back();
void front();
//DIterator
void begin();
void end();
void find();
void findFEGG();
void insert_after();
void insert_before();
void remove();

На базе класса DList с вложенным классом DIterator реализованна представленная ниже задача:

Пользователем вводится последовательность элементов, признак окончания последовательности – не число (некорректный ввод). Реализовать хранение чисел в
списке в отсортированном виде, без повторяющихся значений. По окончании ввода вывести значения в порядке возрастания.

Сортировка списка происходит real time,т.е список отсортировывается каждый раз как на вход подается новый элемент.
Реализовано посредством вставки нововходящего элемента в нужное место списка.