- •Лабораторная работа № 5. Шаблоны функций
- •Методические указания по выполнению лабораторной работы
- •Способ 1.
- •Способ 2.
- •Лабораторная работа № 6 . Динамические структуры данных
- •Варианты структур данных
- •Варианты способа реализации структуры
- •Варианты элементов данных
- •Методические указания по выполнению лабораторной работы
Варианты способа реализации структуры
Способ реализации |
Варианты |
Связанный однонаправленный линейный список |
1, 3, 4, 5, 19, 20 |
Связанный однонаправленный линейный список с указателями на данные |
13, 15 |
Связанный упорядоченный однонаправленный линейный список |
9, 10 |
Связанный однонаправленный циклический список |
2 |
Связанный двунаправленный циклический список |
12 |
Связанный двунаправленный линейный список |
6, 7, 8, 11, 14, 16, 17 |
Связанный однонаправленный циклический список с указателями на данные |
18 |
Таблица 3
Варианты элементов данных
Элемент данных |
Варианты |
Шифр студента – 9 символов, ФИО – 25 символов, средний балл – вещественное число |
1, 2, 3, 4, 6, |
Авторы – 20 символов, название - 20 символов, год издания – целое число |
7, 8, 11, 12, 14, 17 |
Приоритет – целое число, наименование задания – 20символов, количество страниц - целое |
5, 16 |
Название дисциплины – строка переменной длины |
13, 15, 18 |
Код дисциплины – целое число, название дисциплины – 20 символов |
9, 19 |
Телефон (ключ) – целое число, ФИО абонента (значение)– 25 символов |
10, 20 |
Методические указания по выполнению лабораторной работы
Пример программы создания циклического однонаправленного списка с заголовком приведен ниже.
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
struct tlist //тип элемента списка
{
char info[10]; //информационное поле
tlist *next; //указатель на следующий элемент
};
typedef tlist *plist; // тип "указатель на элемент"
void add(plist &list, char s[])
{
plist node; //указатель на новый элемент
node=new tlist; //выделение памяти под элемент
strcpy(node->info,s); //заполнение элемента
node->next=list->next;
list->next=node; //включение элемента в список
}
void main(void)
{
plist list; //указатель на список
char s[10];
//создание пустого списка с заголовочным элементом
list=new tlist;
list->next=list;
//добавление элемента в список
cout<<"s? ";
cin>>s;
add(list,s);
cout<< list->next->info; //вывод элемента
getch();
}