Добавлен: 05.04.2023
Просмотров: 66
Скачиваний: 1
Листинг 11. Метод расчета суммы элементов с указанным диапазоном
t obr(t left, t right) {
shared_ptr<node> ptr = head;
t sum = 0;
while (ptr != nullptr) {
if (ptr->item >= left && ptr->item <= right) {
sum += ptr->item;
}
ptr = ptr->next;
}
return sum;
}
Таким образом были рассмотрены основные операции с данными как в виде блок-схем, так и на примере кода.
Листинг включающий в себя программу целиком вы можете найти в Приложении А.
ЗАКЛЮЧЕНИЕ
В результате выполнения курсовой работы были рассмотрены как наиболее возможные операции над данными, так и основные которые в итоге раскрывают выбранную тему. Все из рассмотренных операций были в той или иной мере подкреплены языком программирования C++ для того чтобы лучше понять смысл приведенных операций. Список всех операций, который был здесь представлен не является всеобъемлющем и может в зависимости от задачи быть дополнен какой-либо сторонней операцией.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
- Язык программирования С++ Бьерн Страуструп Издательство: «Бином» 2012 г.
- Роберт Седжвик: Фундаментальные алгоритмы C++. Издательство «Диасофт» Год издания: 2001 г.
- Информатика: Учебник для вузов/ А.С. Грошев – Архангельск, Арханг.гос.техн.ун-т 2010.-470с https://narfu.ru/university/library/books/0690.pdf
- Технология программирования/ Г.С. Иванова - Москва Издательство МГТУ имени Н.Э. Баумана 2002 г.
- Информатика. Базовый курс/ С.В. Симонович. Год издания: 2013. Издательство: Питер.
- Технология программирования на C++. Начальный курс
Автор: Н. А. Литвиненко. Год издания 2005г.
- HTML и CSS. Разработка и дизайн веб-сайтов. Автор: Джон Даккет. Год выпуска: 2017. Издательство: Эксмо.
Приложение А.
Листинг кода на языке С++ реализующий связный список
template<typename t>
class spisok {
private:
class node {
public:
t item;
shared_ptr<node> next;
node(t it) :item(it) {}
friend spisok;
};
shared_ptr<node> head;
public:
spisok() {
head = nullptr;
}
spisok(t item) {
head = make_shared<node>(node(item));
}
void push(t item) {
shared_ptr<node> ptr(new node(item));
if (head == nullptr) {
head = move(ptr);
return;
}
else {
ptr->next = head;
head = ptr;
}
}
void pop(t item) {
shared_ptr<node> ptr = head;
if (ptr->item == item) {
head = head->next;
return;
}
while (ptr->next != nullptr) {
if (ptr->next->item == item) {
ptr->next = ptr->next->next;
return;
}
ptr = ptr->next;
}
}
shared_ptr<node> find(t item) {
shared_ptr<node> ptr = head;
while (ptr != nullptr) {
if (ptr->item == item) return ptr;
ptr = ptr->next;
}
return nullptr;
}
t obr(t left, t right) {
shared_ptr<node> ptr = head;
t sum = 0;
while (ptr != nullptr) {
if (ptr->item >= left && ptr->item <= right) {
sum += ptr->item;
}
ptr = ptr->next;
}
return sum;
}
void clear() {
while (head != nullptr) {
head = head->next;
}
}
void print()const {
shared_ptr<node> root = head;
while (root != nullptr) {