
Програм-е на ЯВУ / Динамические структуры данных
.pdf
Извлечение данных из контейнера
struct TStudent *student; |
// отчисляемый студент |
// Удаляем последнего студента из группы student= removeStudent(160, getCount(160)-1);
// Освобождаем память, занимаемую студентом if(student != NULL)
{ free(student); } student= NULL;
31

Перемещение данных между контейнерами
Перемещение элемента из одного контейнера в другой:
элемент извлекается из первого контейнера, возвращается указатель на этот элемент
элемент добавляется во второй контейнер, используя
полученный указатель
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Иванов |
|
|
|
Петров |
|
|
|
Сидоров |
|
Иванов |
|
|
Петров |
|
|
|
Сидоров |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23.7 |
|
33.3 |
|
|
|
|
21.0 |
|
23.7 |
|
33.3 |
|
|
|
21.0 |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
Антонов |
|
|
|
|
|
|
|
|
|
Щукин |
|
|
Антонов |
|
|
|
|
|
|
|
|
|
Щукин |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29.0 |
|
|
|
|
|
|
|
34.6 |
|
|
|
29.0 |
|
|
|
|
|
|
|
|
|
34.6 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Задание
Перевести из группы 160 в группу 161 второго студента
33

Перемещение данных между контейнерами
struct TStudent *student; |
// студент для перевода |
// Удаляем второго студента из группы 160 |
|
student= removeStudent(160, 1); |
|
// Добавляем студента в группу |
161 |
if(student != NULL) |
|
{ addStudent(161, student); } |
|
34