Презентация Списки. Структуры данных. Массивы онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Списки. Структуры данных. Массивы абсолютно бесплатно. Урок-презентация на эту тему содержит всего 55 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Списки. Структуры данных. Массивы
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:55 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:2.75 MB
- Просмотров:99
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
Содержание слайда: Значения стандартных типов данных можно группировать и создавать структуры данных
Значения стандартных типов данных можно группировать и создавать структуры данных
Структура данных представляется одной переменной – именем структуры данных, а входящие в нее значения – элементы, выделяются тем или иным способом, специфичным для каждой такой структуры
Наиболее простой и часто используемой структурой данных является массив
№3 слайд
Содержание слайда: Массив – это набор некоторого числа однотипных данных, расположенных в последовательных ячейках памяти
Массив – это набор некоторого числа однотипных данных, расположенных в последовательных ячейках памяти
Количество элементов массива называется его размером, а тип элементов – типом массива
№4 слайд
Содержание слайда: Первым недостатком массивов является их фиксированный размер, который устанавливается при создании массива и в дальнейшем не может быть изменен
Первым недостатком массивов является их фиксированный размер, который устанавливается при создании массива и в дальнейшем не может быть изменен
Частично эта проблема решается при использовании динамических массивов путем создания новых массивов большего размера
№5 слайд
Содержание слайда: Статический массив. Располагается в статической или автоматической памяти
Статический массив. Располагается в статической или автоматической памяти
using namespace std;
const int n = 10;
int mas[n] = {5, 7, 24, -10, 9, 14, 18, -2, 2, 4};
void sort (int[ ] a, int length)
{
int j, x;
for (int i = 0; i < length; i++){
. . .
}
}
№6 слайд
Содержание слайда: Динамический массив. Располагается в динамической памяти
Динамический массив. Располагается в динамической памяти
int *mas, n;
int _tmain (int argc, _TCHAR* argv[])
{
. . .
cout << "Задайте размер массива" << endl;
cin >> n;
mas = new int [n] {4, 7 ,9};
. . .
delete [ ] mas;
. . .
}
№7 слайд
Содержание слайда: Второй недостаток массивов связан с тем, что элементы массива занимают смежные ячейки памяти
Второй недостаток массивов связан с тем, что элементы массива занимают смежные ячейки памяти
Это сильно усложняет выполнение операций добавления и удаления элементов в заполненной части массива
№9 слайд
Содержание слайда: Структуры также, как и массивы, имеют фиксированный размер, определяемый как сумма размеров их полей
Структуры также, как и массивы, имеют фиксированный размер, определяемый как сумма размеров их полей
В отличие от массивов, операции добавления и удаления элементов для структуры невозможны
№11 слайд
Содержание слайда: Недостатков статических структур данных лишены структуры данных с изменяющимися во время выполнения программы составом и размерами, называемые динамическими структурами данных
Недостатков статических структур данных лишены структуры данных с изменяющимися во время выполнения программы составом и размерами, называемые динамическими структурами данных
№12 слайд
Содержание слайда: Переменные, входящие в состав динамических структур, необходимо каким-либо образом связывать друг с другом
Переменные, входящие в состав динамических структур, необходимо каким-либо образом связывать друг с другом
Поэтому каждый элемент динамической структуры должен содержать один или несколько адресов связанных с ним элементов, т.е. указателей на эти элементы
№13 слайд
Содержание слайда: Самый простой способ соединить отдельные элементы между собой заключается в том, чтобы снабдить каждый из них только одним указателем на другой элемент
Самый простой способ соединить отдельные элементы между собой заключается в том, чтобы снабдить каждый из них только одним указателем на другой элемент
В результате получается динамическая структура, называемая линейным (однонаправленным) списком
№15 слайд
Содержание слайда: Для элемента линейного списка можно определить следующий тип данных:
Для элемента линейного списка можно определить следующий тип данных:
struct element
{ int info; // информационное поле
element* next; // указатель на следующий }; // элемент
Для информационного поля может быть выбран любой другой тип данных, в том числе, массив или структура
№21 слайд
Содержание слайда: Предполагается, что предварительно в списке тем или иным способом выделен некоторый элемент
Предполагается, что предварительно в списке тем или иным способом выделен некоторый элемент
Далее, возможны две ситуации:
новый элемент нужно вставить перед выделенным;
новый элемент нужно вставить после выделенного
Рассмотрим каждую из ним в отдельности
№22 слайд
Содержание слайда: Для этого необходимо выполнить следующие действия:
Для этого необходимо выполнить следующие действия:
определить рабочую переменную-указатель
создать новый элемент с помощью рабочего указателя
связать новый элемент со следующим за выделенным
связать выделенный элемент с новым
№27 слайд
Содержание слайда: Операции добавления элементов в список могут различаться способом ввода данных
Операции добавления элементов в список могут различаться способом ввода данных
Данные могут задаваться
путем консольного ввода,
путем считывания из файла,
путем использования генератора случайных чисел
№28 слайд
Содержание слайда: Операции добавления в список позволяют создавать списки как с прямым, так и с обратным по отношению к порядку ввода следованием элементов
Операции добавления в список позволяют создавать списки как с прямым, так и с обратным по отношению к порядку ввода следованием элементов
Алгоритм создания списка:
инициировать список
повторить нужное число раз операцию добавления элемента в список
№33 слайд
Содержание слайда: Особенность этой операции заключается в том, что удалить можно только элемент, следующий за выделенным
Особенность этой операции заключается в том, что удалить можно только элемент, следующий за выделенным
Алгоритм удаления состоит просто в изменении значения поля указателя выделенного элемента:
q = r->next;
r->next = q->next;
delete *q;
№35 слайд
Содержание слайда: Особым случаем является удаление первого элемента списка, которое сводится изменению значения указателя на голову списка:
Особым случаем является удаление первого элемента списка, которое сводится изменению значения указателя на голову списка:
p = r->next;
delete *r;
Разумеется, удаление элемента возможно только при условии, что список не пуст
№37 слайд
Содержание слайда: Операция заключается в последовательном переборе всех элементов списка от первого до последнего
Операция заключается в последовательном переборе всех элементов списка от первого до последнего
Просмотр списка может сопровождаться выводом значений информационных полей, поиском максимального значения и т.д.
Операция реализуется простым циклом for
№39 слайд
Содержание слайда: Двунаправленные списки отличаются от однонаправленных тем, что между их элементами существуют отношения предыдущий-последующий и последующий-предыдущий
Двунаправленные списки отличаются от однонаправленных тем, что между их элементами существуют отношения предыдущий-последующий и последующий-предыдущий
№40 слайд
Содержание слайда: Небольшое усложнение структуры элемента списка позволяет получить возможность просмотра его в двух направлениях: от начала к концу и от конца к началу
Небольшое усложнение структуры элемента списка позволяет получить возможность просмотра его в двух направлениях: от начала к концу и от конца к началу
struct element
{ int info; // информационное поле
element* prev; // указатель на предыдущий
element* next; // указатель на следующий
};
№41 слайд
Содержание слайда: Реализации этих операций в двунаправленных списках имеют свои особенности благодаря возможности доступа к предыдущему и последующему элементам
Реализации этих операций в двунаправленных списках имеют свои особенности благодаря возможности доступа к предыдущему и последующему элементам
Так добавление элемента перед выделенным уже не требует обмена значениями и отличается от аналогичной операции добавления после выделенного только способом задания значений ссылок
№46 слайд
Содержание слайда: Кольцевой однонаправленный список получается из линейного «замыканием» последнего элемента на первый
Кольцевой однонаправленный список получается из линейного «замыканием» последнего элемента на первый
Соответственно, операция добавления в конец такого списка должна завершаться следующим присваиванием:
q->next = p;
№47 слайд
Содержание слайда: Для двунаправленного кольцевого списка требуется установить две ссылки:
Для двунаправленного кольцевого списка требуется установить две ссылки:
первого элемента на последний,
последнего элемента на первый
Ссылка первого элемента *p на созданный в конце списка элемент *q имеет вид
p->prev = q;
а последнего на первый
q->next = p;
№48 слайд
Содержание слайда: Вышеописанная реализация списка в виде связной динамической структуры имеет ряд очевидных достоинств
Вышеописанная реализация списка в виде связной динамической структуры имеет ряд очевидных достоинств
К числу этих достоинств относятся:
возможность создавать, удалять и регулировать размер списков во время выполнения программы;
относительная простота выполнения операций добавления элементов в список и их удаления из списка
№50 слайд
Содержание слайда: В этом случае поле ссылки имеет значение индекса следующего элемента
В этом случае поле ссылки имеет значение индекса следующего элемента
Для обозначения «свободных» элементов массива можно использовать особые значения поля ссылки, например, равные -2
Операции добавления новых элементов требуют в этих случаях предварительного поиска в массиве свободных мест
№51 слайд
Содержание слайда: При этом остается ограничение на длину списка, что позволяет реализовать списки с длиной, не превышающей объявленную длину массива
При этом остается ограничение на длину списка, что позволяет реализовать списки с длиной, не превышающей объявленную длину массива
Соответственно, появляется еще одна дополнительная операция – проверка на переполнение списка
Пример реализации списка в виде массива
Тестирование приложения
№52 слайд
Содержание слайда: Понятие списка вводится в информатике как структура данных, представляющая соответствующий абстрактный тип данных
Понятие списка вводится в информатике как структура данных, представляющая соответствующий абстрактный тип данных
Абстра́ктным типом да́нных (АТД) называется тип данных, который определяется путем перечисления набора возможных операций над его данными
№54 слайд
Содержание слайда: Конкретные реализации АТД называются структурами данных
Конкретные реализации АТД называются структурами данных
Абстрактный тип данных список может быть реализован при помощи массива или линейного списка
Однако каждая реализация определяет один и тот же набор функций, который должен работать одинаково (по результату, а не по скорости) для всех реализаций
Скачать все slide презентации Списки. Структуры данных. Массивы одним архивом:
-
Абстрактные структуры данных. Списки
-
Программирование циклических алгоритмов. Операции с памятью. Обработка структур данных (массивов)
-
Структурированные типы данных. Массивы
-
Структурированные типы данных. Одномерные массивы
-
Структурный тип данных. Массив
-
Сложные структуры данных. Связные списки
-
Динамические структуры данных: списки
-
Динамические структуры данных. Односвязные и двусвязные списки
-
Массивы. Классификация данных по структуре
-
Рекурсивные структуры данных. Списки в Prolog