Задания для самостоятельного выполнения. 4.1.Создать класс ListInt для работы со списком целых чисел

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, для работы с элементами бинарного дерева символьных строк. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { char *data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr адрес левого и правого узла, соответственно.

Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Дополнительно перегрузить для элементов этого класса операцию ~ (побитовое отрицание), которая выводит на экран элемент дерева максимальной длины.

Данные для проверки работы класса считывать из файла.

4.11. Создать класс TreeDouble, для работы с элементами двоичного дерева вещественных чисел. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { double data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr - адрес левого и правого узла, соответственно.

Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов дерева (в том числе и упорядоченные по возрастанию).

Дополнительно перегрузить для элементов этого класса операцию ~ (побитовое отрицание), которая распечатывает содержимое дерева в порядке убывания его элементов.

4.12. Создать класс TreeInt, для работы с элементами целого типа. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { int data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr - адрес левого и правого узла, соответственно.

Класс должен содержать конструктор по умолчанию и основной конструктор, конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов дерева, удаление элемента дерева.

Дополнительно перегрузить для элементов этого класса операцию! (логическое отрицание), которая возвращает количество узлов дерева.

4.13. Создать класс TreeDouble, для работы с элементами бинарного дерева вещественных чисел. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { double data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr адрес левого и правого узла, соответственно.

Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса.

Определить в этом классе функции-члены класса, обеспечивающие: добавление элементов дерева, удаление элемента дерева.

Дополнительно перегрузить для элементов этого класса операцию! (логическое отрицание), которая возвращает количество листьев (узлов, не имеющих узлов-потомков) в этом дереве.

4.14. Создать класс TreeChar, для работы с элементами двоичного дерева ASCII -символов. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { char data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr адрес левого и правого узла, соответственно.

Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Дополнительно перегрузить для элементов этого класса операцию ~ (побитовое отрицание), которая распечатывает содержимое дерева в двоичной системе счисления.

4.15. Создать класс TreeString, для работы с элементами дерева слов. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { char* data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr адрес левого и правого узла, соответственно.

Класс должен содержать основной конструктор. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов. Дополнительно перегрузить для элементов этого класса логическую операцию | (побитовая дизъюнкция), которая определяет, входит ли в дерево заданный элемент.

Слова для дерева считывать из файла.

4.16. Создать класс TreeInt, для работы с элементами бинарного дерева целых чисел. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { int data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr адрес левого и правого узла, соответственно.

Определить в этом классе функции-члены класса, обеспечивающие: заполнение дерева, добавление элементов дерева, удаление элемента дерева.

Дополнительно определить операцию &, которая позволяет вывести на экран элементы дерева в 16-ой системе счисления.

4.17. Создать класс TreeString, для работы с элементами бинарногодерева слов. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { char *data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr адрес левого и правого узла, соответственно.

Определить в этом классе функции-члены класса, обеспечивающие: заполнение дерева, добавление элементов дерева, удаление элемента дерева.

Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса (в том числе и в алфавитном порядке).

Дополнительно определить операторную функцию --, которая позволяет распечатать содержимое дерева в порядке, обратном алфавитному.

Слова для дерева считывать из файла.

4.18. Создать класс TreeChar, для работы с элементами двоичного дерева ASCII -символов. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { char data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr адрес левого и правого узла, соответственно.

Определить в этом классе функции-члены класса, обеспечивающие: заполнение дерева, добавление элементов дерева, удаление элемента дерева.

Дополнительно определить операторную функцию >, которая позволяет определить, входит ли в дерево заданный символ.

4.19. Создать класс TreeDouble, для работы с элементами бинарного дерева вещественных чисел. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { double data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr - адрес левого и правого узла, соответственно.

Определить в этом классе функции-члены класса, обеспечивающие: заполнение дерева, добавление элементов дерева, удаление элемента дерева.

Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса (в том числе и в алфавитном порядке).

Дополнительно определить операторную функцию -, которая возвращает среднее геометрическое всех элементов дерева.

4.20. Создать класс TreeChar, для работы с элементами двоичного дерева ASCII -символов. В качестве членов-данных рекомендуется брать элементы самоссылочной структуры следующего вида:

struct Node { char data; Node *LeftPtr, *RightPtr; };

где LeftPtr и RightPtr адрес левого и правого узла, соответственно.

Определить в этом классе функции-члены класса, обеспечивающие: заполнение дерева, добавление элементов дерева, удаление элемента дерева.

Дополнительно определить операторную функцию -, которая позволяет определить входит ли в дерево определенный символ, вводимый с клавиатуры. Если символ входит в дерево, то удалить его.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: