- •Лабораторная работа № 5. Шаблоны функций
- •Методические указания по выполнению лабораторной работы
- •Способ 1.
- •Способ 2.
- •Лабораторная работа № 6 . Динамические структуры данных
- •Варианты структур данных
- •Варианты способа реализации структуры
- •Варианты элементов данных
- •Методические указания по выполнению лабораторной работы
Способ 1.
#include <iostream>
#include <conio>
template <class Tree>
Tree maximum(Tree M, Tree MM)
{ Tree max=MM;
if (M>max) max=M;
return max;}
void main(){
int i;
int Vremi,MI[10];
cout<<"*** Int *** \n";
for (i=0; i<=10; i++){
cin>>MI[i];
if (i==0) Vremi=MI[i];
Vremi=maximum(MI[i],Vremi);}
cout<<"Max: "<<Vremi<<"\n";
double Vremd,MD[10];
cout<<"*** Double *** \n";
for (i=0; i<=10; i++){
cin>>MD[i];
if (i==0) Vremd=MD[i];
Vremd=maximum(MD[i],Vremd);}
cout<<"Max: "<<Vremd<<"\n";
char VremCh,MCh[10];
cout<<"*** Char *** \n";
for (i=0; i<=10; i++){
cin>>MCh[i];
if (i==0) VremCh=MCh[i];
VremCh=maximum(MCh[10],VremCh);}
cout<<"Max: "<<Vremd<<"\n";
getch();}
Способ 2.
#include <iostream>
#include <conio>
template <class Tree>
Tree maximum(const Tree *array)
{ Tree max=array[0];
for (int i=0; i<=10; i++)
if (array[i]>max) max=array[i];
return max;}
void main(){
int i;
int MI[10];
cout<<"*** Int *** \n";
for (i=0; i<=10; i++) cin>>MI[i];
cout<<"Max: "<<maximum(MI)<<"\n";
double MD[10];
cout<<"*** Double *** \n";
for (i=0; i<=10; i++) cin>>MD[i];
cout<<"Max: "<<maximum(MD)<<"\n";
char MCh[10];
cout<<"*** Char *** \n";
for (i=0; i<=10; i++) cin>>MCh[i];
cout<<"Max: "<<maximum(MCh)<<"\n";
getch();}
Лабораторная работа № 6 . Динамические структуры данных
Разработать программу, выполняющую операции со структурами данных, реализованными в виде связанных списков. Алгоритмы выполнения каждой операции оформить в виде функции. Программа должна содержать меню, позволяющее протестировать все операции с динамической структурой. Варианты заданий приведены в табл. 1 -3.
Таблица 1
Варианты структур данных
Структура данных |
Операции |
Варианты |
Линейный список |
Добавление элемента в начало, создание списка из n элементов, проверка списка на отсутствие в нем элементов, поиск позиции элемента с заданным значением, удаление элемента после элемента с заданной позицией (вар.1), удаление дубликатов (вар.11), получение значения элемента по его позиции, вывод списка |
1, 11 |
Циклический список |
Добавление элемента, создание списка из n элементов, проверка списка на отсутствие в нем элементов, удаление дубликатов (вар. 12), удаление элемента с заданным значением (вар. 2, 18), вывод списка |
2, 12, 18 |
Стек |
Добавление элемента, удаление элемента, создание стека из n элементов, проверка стека на отсутствие в нем элементов, получение значения элемента из вершины стека, очистка стека, вывод стека |
3, 13 |
Очередь |
Добавление элемента в конец, создание очереди из n элементов, проверка очереди на отсутствие в ней элементов, удаление элемента из начала, удаление всех элементов, получение значения из начала очереди, вывод очереди |
4,14, 15 |
Очередь с приоритетами |
Создание пустой очереди, добавление элемента, проверка очереди на отсутствие в ней элементов, удаление элемента с наибольшим приоритетом, получение элемента с наибольшим приоритетом, сцепление двух очередей, вывод очереди |
5, 16 |
Дек |
Добавление элемента справа, удаление элемента слева (вар. 17), удаление элемента справа (вар.6), создание списка из n элементов, проверка списка на отсутствие в нем элементов, копирование дека (вар. 6), копирование дека в обратном порядке (вар. 17), получение значения правого элемента, вывод дека |
6, 17 |
Дек с ограниченным выходом |
Добавление элемента справа, добавление элемента слева, создание дека из n элементов, проверка дека на отсутствие в нем элементов, удаление элемента справа, удаление всех элементов, получение значения правого элемента, вывод дека |
7 |
Дек с ограниченным входом |
Добавление элемента слева, создание дека из n элементов, проверка дека на отсутствие в нем элементов, удаление элемента справа, удаление элемента слева, получение значения левого элемента, удаление всех элементов, сравнение двух деков, вывод дека |
8 |
Множество |
Создание пустого множества, проверка вхождения элемента в множество, включение элемента в множество, объединение двух множеств, пересечение двух множеств, разность двух множеств, вывод множества |
9, 19 |
Словарь |
Создание пустого словаря, проверка словаря на отсутствие в нем элементов, включение элемента в словарь, поиск значения по ключу, исключение элемента из словаря по ключу, вывод словаря, удаление всех элементов. |
10, 20 |
Таблица 2