4.1.Создать класс ListInt для работы со списком целых чисел. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец списка) самоссылочной структуры следующего вида:
struct Node { int data; Node *next; };
Определить в этом классе функции-члены класса, обеспечивающие: инициализацию списка, добавление элементов в список, удаление элемента из списка.
Кроме того, определить операторные функции для ввода и вывода списка.
Дополнительно определить функцию-член этого класса, которая находит максимальный элемент списка, и операторную функцию / , которая находит среднее арифметическое элементов списка.
4.2.Создать класс StackInt для работы со стеком целых чисел. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец стека) самоссылочной структуры следующего вида:
struct Node { int data; Node *next; };
Определить в этом классе функции-члены класса, обеспечивающие: инициализацию стека, добавление элементов в стек, удаление элемента из стека.
Кроме того, определить операторные функции для ввода и вывода стека.
Дополнительно определить функцию-член этого класса, которая заменяет элемент данных стека с заданным номером на новое значение, и операторную функцию -, которая находит минимальный элемент данных стека.
4.3.Создать класс QueueInt для работы с очередью целых чисел. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец очереди) самоссылочной структуры следующего вида:
struct Node { int data; Node *next; };
Определить в этом классе функции-члены класса, обеспечивающие: инициализацию очереди, добавление элементов в очередь, удаление элемента из очереди.
Кроме того, определить операторные функции для ввода и вывода очереди.
Дополнительно определить функцию-член этого класса, которая позволяет удалить из очереди элемент с заданным номером, и операторную функцию ~ , которая позволяет найти значение элемента, наиболее близкого к среднему значению элементов очереди.
4.4.Создать класс ListChar для работы со списком символов. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец списка) самоссылочной структуры следующего вида:
struct Node { char data; Node *next; };
Определить в этом классе функции-члены класса, обеспечивающие: инициализацию списка, добавление элементов в список, удаление элемента из списка.
Кроме того, определить операторные функции для ввода и вывода списка.
Дополнительно определить функцию-член этого класса, которая распечатывает на экране дисплея только те символы, ASCII-коды которых нечетные, и операторную функцию +, которая позволяет объединить два списка.
4.5.Создать класс StackChar для работы со стеком символов. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец стека) самоссылочной структуры следующего вида:
struct Node { char data; Node *next; };
Определить в этом классе функции-члены класса, обеспечивающие: инициализацию стека, добавление элементов в стек, удаление элемента из стека.
Кроме того, определить операторные функции для ввода и вывода стека.
Дополнительно определить функцию-член этого класса, которая позволяет объединить два стека, и операторную функцию %, которая распечатывает на экране дисплея только те символы стека, ASCII-коды которых - четные.
4.6.Создать класс QueueChar для работы с очередью символов. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец очереди) самоссылочной структуры следующего вида:
struct Node { char data; Node *next; };
Определить в этом классе функции-члены класса, обеспечивающие: инициализацию очереди, добавление элементов в очередь, удаление элемента из очереди.
Кроме того, определить операторные функции для ввода и вывода очереди.
Дополнительно определить функцию-член этого класса, которая распечатывает на экране сумму цифровых символов, содержащихся в очереди, и операторную функцию - , которая удаляет из очереди те символы, которые входят во вторую очередь, передаваемую в качестве параметра.
4.7.Создать класс StackString для работы со стеком, содержащим строки текста. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец стека) самоссылочного класса (должен быть другом основному классу) следующего вида:
class Node { char* data; Node *next; };
Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов в стек, удаление элемента из стека. Кроме того, определить операторные функции для ввода и вывода стека.
Дополнительно перегрузить операторную функцию для операции ! (логическое отрицание), которая возвращает максимальный элемент стека.
Данные для проверки работы класса считывать из файла.
4.8.Создать класс Queue для работы с очередью, содержащей строки текста. В качестве членов-данных рекомендуется брать два элемента (определяющие начало и конец очереди) самоссылочного класса (должен быть другом основному классу) следующего вида:
class Node { char* data; Node *next; };
Класс должен содержать конструктор по умолчанию, основной конструктори конструктор копирования. Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов в очередь, удаление элемента из очереди.
Кроме того, определить операторные функции для ввода и вывода очереди.
Дополнительно перегрузить операторную функцию для операции ! (логическое отрицание), которая возвращает первый элемент очереди минимальной длины.
Данные для проверки работы класса считывать из файла.
4.9.Создать класс TreeInt, для работы с элементами бинарного дерева целых чисел. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
struct Node { int data; Node *LeftPtr, *RightPtr; };
где LeftPtr и RightPtr - адрес левого и правого узла, соответственно.
Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Дополнительно перегрузить для элементов этого класса операцию ~ (побитовое отрицание), которая возвращает среднее арифметическое всех элементов дерева.
4.10.Создать класс TreeString, для работы с элементами бинарного дерева символьных строк. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
где LeftPtr и RightPtr адрес левого и правого узла, соответственно.
Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Дополнительно перегрузить для элементов этого класса операцию ~ (побитовое отрицание), которая выводит на экран элемент дерева максимальной длины.
Данные для проверки работы класса считывать из файла.
4.11.Создать класс TreeDouble, для работы с элементами двоичного дерева вещественных чисел. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
где LeftPtr и RightPtr- адрес левого и правого узла, соответственно.
Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов дерева (в том числе и упорядоченные по возрастанию).
Дополнительно перегрузить для элементов этого класса операцию ~ (побитовое отрицание), которая распечатывает содержимое дерева в порядке убывания его элементов.
4.12.Создать класс TreeInt, для работы с элементами целого типа. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
где LeftPtr и RightPtr - адрес левого и правого узла, соответственно.
Класс должен содержать конструктор по умолчанию и основной конструктор, конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов дерева, удаление элемента дерева.
Дополнительно перегрузить для элементов этого класса операцию ! (логическое отрицание), которая возвращает количество узлов дерева.
4.13.Создать класс TreeDouble, для работы с элементами бинарного дерева вещественных чисел. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
где LeftPtr и RightPtr адрес левого и правого узла, соответственно.
Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса.
Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов дерева, удаление элемента дерева.
Дополнительно перегрузить для элементов этого класса операцию ! (логическое отрицание), которая возвращает количество листьев (узлов, не имеющих узлов-потомков) в этом дереве.
4.14.Создать класс TreeChar, для работы с элементами двоичного дерева ASCII-символов. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
где LeftPtr и RightPtr адрес левого и правого узла, соответственно.
Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Дополнительно перегрузить для элементов этого класса операцию ~ (побитовое отрицание), которая распечатывает содержимое дерева в двоичной системе счисления.
4.15.Создать класс TreeString, для работы с элементами дерева слов. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
где LeftPtr и RightPtr адрес левого и правого узла, соответственно.
Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов. Дополнительно перегрузить для элементов этого класса логическую операцию | (побитовая дизъюнкция), которая определяет, входит ли в дерево заданный элемент.
Слова для дерева считывать из файла.
4.16.Создать класс TreeInt, для работы с элементами бинарного дерева целых чисел. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
struct Node { int data; Node *LeftPtr, *RightPtr; };
где LeftPtr и RightPtr адрес левого и правого узла, соответственно.
Определить в этом классе функции-члены класса, обеспечивающие: заполнение дерева, добавление элементов дерева, удаление элемента дерева.
Дополнительно определить операцию &, которая позволяет вывести на экран элементы дерева в 16-ой системе счисления.
4.17.Создать класс TreeString, для работы с элементами бинарногодерева слов. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
где LeftPtr и RightPtr адрес левого и правого узла, соответственно.
Определить в этом классе функции-члены класса, обеспечивающие: заполнение дерева, добавление элементов дерева, удаление элемента дерева.
Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса (в том числе и в алфавитном порядке).
Дополнительно определить операторную функцию -- , которая позволяет распечатать содержимое дерева в порядке, обратном алфавитному.
Слова для дерева считывать из файла.
4.18.Создать класс TreeChar, для работы с элементами двоичного дерева ASCII-символов. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
где LeftPtr и RightPtr адрес левого и правого узла, соответственно.
Определить в этом классе функции-члены класса, обеспечивающие: заполнение дерева, добавление элементов дерева, удаление элемента дерева.
Дополнительно определить операторную функцию >, которая позволяет определить, входит ли в дерево заданный символ.
4.19.Создать класс TreeDouble, для работы с элементами бинарного дерева вещественных чисел. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
где LeftPtr и RightPtr - адрес левого и правого узла, соответственно.
Определить в этом классе функции-члены класса, обеспечивающие: заполнение дерева, добавление элементов дерева, удаление элемента дерева.
Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса (в том числе и в алфавитном порядке).
Дополнительно определить операторную функцию / , которая возвращает среднее геометрическое всех элементов дерева.
4.20.Создать класс TreeChar, для работы с элементами двоичного дерева ASCII-символов. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:
где LeftPtr и RightPtr адрес левого и правого узла, соответственно.
Определить в этом классе функции-члены класса, обеспечивающие: заполнение дерева, добавление элементов дерева, удаление элемента дерева.
Дополнительно определить операторную функцию -, которая позволяет определить входит ли в дерево определенный символ, вводимый с клавиатуры. Если символ входит в дерево, то удалить его.