🗊Презентация Структуры данных

Нажмите для полного просмотра!
Структуры данных, слайд №1Структуры данных, слайд №2Структуры данных, слайд №3Структуры данных, слайд №4Структуры данных, слайд №5Структуры данных, слайд №6Структуры данных, слайд №7Структуры данных, слайд №8Структуры данных, слайд №9Структуры данных, слайд №10Структуры данных, слайд №11Структуры данных, слайд №12Структуры данных, слайд №13Структуры данных, слайд №14Структуры данных, слайд №15Структуры данных, слайд №16Структуры данных, слайд №17Структуры данных, слайд №18Структуры данных, слайд №19Структуры данных, слайд №20Структуры данных, слайд №21Структуры данных, слайд №22Структуры данных, слайд №23Структуры данных, слайд №24Структуры данных, слайд №25Структуры данных, слайд №26Структуры данных, слайд №27Структуры данных, слайд №28Структуры данных, слайд №29Структуры данных, слайд №30

Содержание

Вы можете ознакомиться и скачать презентацию на тему Структуры данных. Доклад-сообщение содержит 30 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Тема 8 
Структуры данных
Описание слайда:
Тема 8 Структуры данных

Слайд 2





Структуры данных – что это?
Структура данных – способ организации хранения данных и доступа к ним, предназначенный для выполнения определённого набора операций над этими данными.
Для каждой структуры вводится понятие удобных и неудобных операций. 
Удобные операции – те, которые выполняются при использовании быстрее, чем при использовании других структур.
Неудобные операции – те, которые либо не могут быть выполнены, либо те, которые выполняются медленнее по сравнению с другими структурами.
Описание слайда:
Структуры данных – что это? Структура данных – способ организации хранения данных и доступа к ним, предназначенный для выполнения определённого набора операций над этими данными. Для каждой структуры вводится понятие удобных и неудобных операций. Удобные операции – те, которые выполняются при использовании быстрее, чем при использовании других структур. Неудобные операции – те, которые либо не могут быть выполнены, либо те, которые выполняются медленнее по сравнению с другими структурами.

Слайд 3





Простейшие структуры данных
массив
линейный однонаправленный список
стек
очередь
Описание слайда:
Простейшие структуры данных массив линейный однонаправленный список стек очередь

Слайд 4





Массив
Удобные операции:
доступ к элементу массива по индексу;
просмотр элементов по возрастанию индексов;
поиск элемента по значению в упорядоченном массиве
Неудобные операции:
вставка элементов в произвольное место массива и удаление из произвольного места;
поиск элемента по значению в неупорядоченном массиве
Описание слайда:
Массив Удобные операции: доступ к элементу массива по индексу; просмотр элементов по возрастанию индексов; поиск элемента по значению в упорядоченном массиве Неудобные операции: вставка элементов в произвольное место массива и удаление из произвольного места; поиск элемента по значению в неупорядоченном массиве

Слайд 5





Дихотомия
Дихотомия («деление пополам») – алгоритм поиска элемента по значению в упорядоченном по возрастанию массиве
Описание алгоритма:
если массив пуст, элемент не найден;
сравниваем искомое значение со средним элементом массива;
если они равны, элемент найден;
если средний элемент меньше искомого значения, продолжаем поиск в нижнем подмассиве, иначе – в верхнем.
Описание слайда:
Дихотомия Дихотомия («деление пополам») – алгоритм поиска элемента по значению в упорядоченном по возрастанию массиве Описание алгоритма: если массив пуст, элемент не найден; сравниваем искомое значение со средним элементом массива; если они равны, элемент найден; если средний элемент меньше искомого значения, продолжаем поиск в нижнем подмассиве, иначе – в верхнем.

Слайд 6





Реализация дихотомии
bool Find(int what, int* mass, int first, int last) {
	if (first>last)
		return false;
	int medium = (first+last)/2;
	if (mass[medium]==what)
		return true;
	if (mass[medium]<what)
	    return Find(what, mass, medium+1, last);
	else
		return Find(what, mass, first, medium-1);
}
…
int mas[] = {2, 4, 7, 18, 40, 45, 48, 52, 76, 101};
cout << (Find(101, mas, 0, 9) ? "Yes" : "No") << endl;
Описание слайда:
Реализация дихотомии bool Find(int what, int* mass, int first, int last) { if (first>last) return false; int medium = (first+last)/2; if (mass[medium]==what) return true; if (mass[medium]<what) return Find(what, mass, medium+1, last); else return Find(what, mass, first, medium-1); } … int mas[] = {2, 4, 7, 18, 40, 45, 48, 52, 76, 101}; cout << (Find(101, mas, 0, 9) ? "Yes" : "No") << endl;

Слайд 7





Списки
Список – совокупность элементов, каждый из которых, кроме последнего, содержит информацию (ссылку) о следующем элементе. Отдельно должна храниться информация о первом элементе списка.
Удобные операции над списками:
вставка в заранее определённое место списка;
удаление из заранее определённого места списка.
Неудобные операции над списками:
поиск элемента по значению;
доступ к элементу по его номеру.
Описание слайда:
Списки Список – совокупность элементов, каждый из которых, кроме последнего, содержит информацию (ссылку) о следующем элементе. Отдельно должна храниться информация о первом элементе списка. Удобные операции над списками: вставка в заранее определённое место списка; удаление из заранее определённого места списка. Неудобные операции над списками: поиск элемента по значению; доступ к элементу по его номеру.

Слайд 8





Структура линейного однонаправленного списка
Описание слайда:
Структура линейного однонаправленного списка

Слайд 9





Реализация списка с использованием динамической памяти
struct ListItem {
 	int Info;
	ListItem *Next;
};
ListItem *First;
Описание слайда:
Реализация списка с использованием динамической памяти struct ListItem { int Info; ListItem *Next; }; ListItem *First;

Слайд 10





Схема добавления в список нового элемента
Описание слайда:
Схема добавления в список нового элемента

Слайд 11





Реализация вставки в список нового элемента
В начало списка
ListItem *P = new ListItem;
// заполнение поля P->Info
P->Next = First;
First = P;
После элемента, адрес которого находится в указателе Q
ListItem *P = new ListItem;
// заполнение поля P->Info
P->Next = Q->Next;
Q->Next = P;
Описание слайда:
Реализация вставки в список нового элемента В начало списка ListItem *P = new ListItem; // заполнение поля P->Info P->Next = First; First = P; После элемента, адрес которого находится в указателе Q ListItem *P = new ListItem; // заполнение поля P->Info P->Next = Q->Next; Q->Next = P;

Слайд 12





Схема удаления элемента из списка
Описание слайда:
Схема удаления элемента из списка

Слайд 13





Реализация удаления элемента из списка
Из начала списка
if (First == NULL)
 // обработать ситуацию ”List is already empty!”
ListItem *P = First;
First = First->Next;
delete P;
После элемента, адрес которого находится в указателе Q
ListItem *P = Q->Next;
if (P == NULL)
   // обработать ситуацию ”Nothing to delete!”
Q->Next = P->Next;
delete P;
Описание слайда:
Реализация удаления элемента из списка Из начала списка if (First == NULL) // обработать ситуацию ”List is already empty!” ListItem *P = First; First = First->Next; delete P; После элемента, адрес которого находится в указателе Q ListItem *P = Q->Next; if (P == NULL) // обработать ситуацию ”Nothing to delete!” Q->Next = P->Next; delete P;

Слайд 14





Просмотр всех элементов списка
ListItem *P = First;
while (P != NULL) {
  // выполнить действия над элементом P->Info
  P = P->Next;
}
Описание слайда:
Просмотр всех элементов списка ListItem *P = First; while (P != NULL) { // выполнить действия над элементом P->Info P = P->Next; }

Слайд 15





Организация списка с использованием массива
Описание слайда:
Организация списка с использованием массива

Слайд 16





Проблема "сборки мусора"
Суть проблемы: как организовать повторное использование памяти, освободившейся после удаления элемента списка
При удалении элемента из списка , организованного с использованием динамической памяти, память сразу же становится доступной для повторного использования
При удалении элемента из списка, организованного в виде массива, эту проблему приходится решать самостоятельно!
Описание слайда:
Проблема "сборки мусора" Суть проблемы: как организовать повторное использование памяти, освободившейся после удаления элемента списка При удалении элемента из списка , организованного с использованием динамической памяти, память сразу же становится доступной для повторного использования При удалении элемента из списка, организованного в виде массива, эту проблему приходится решать самостоятельно!

Слайд 17





Сборка мусора при организации списка в виде массива
Описание слайда:
Сборка мусора при организации списка в виде массива

Слайд 18





Инициализация списка в виде массива
Описание слайда:
Инициализация списка в виде массива

Слайд 19





Работа со списком в виде массива
Описание слайда:
Работа со списком в виде массива

Слайд 20





Работа со списком в виде массива (часть 2)
Описание слайда:
Работа со списком в виде массива (часть 2)

Слайд 21





Работа со списком в виде массива (часть 3)
Описание слайда:
Работа со списком в виде массива (часть 3)

Слайд 22





Работа со списком в виде массива (часть 4)
Описание слайда:
Работа со списком в виде массива (часть 4)

Слайд 23





Стеки
Стек – структура данных, предназначенная для  выполнения следующих операций:
основные
занесение нового элемента на вершину стека (push);
удаление элемента с вершины стека (pop)
дополнительные
просмотр и, возможно, изменение элементов, находящихся в стеке, без изменения его структуры
Описание слайда:
Стеки Стек – структура данных, предназначенная для выполнения следующих операций: основные занесение нового элемента на вершину стека (push); удаление элемента с вершины стека (pop) дополнительные просмотр и, возможно, изменение элементов, находящихся в стеке, без изменения его структуры

Слайд 24





Реализация стека с использованием массивов
Описание слайда:
Реализация стека с использованием массивов

Слайд 25





Реализация стека на массивах
int * Stack, Top = 0;
…
Stack = new int [N];
// push (заносится значение k)
if (Top>=N)
  // обработать ситуацию ”Stack is full!”;
Stack[Top++] = k;
// pop (значение извлекается в k) 
if (Top==0)
  throw ”Stack is empty!”;
k = Stack[--Top];
Описание слайда:
Реализация стека на массивах int * Stack, Top = 0; … Stack = new int [N]; // push (заносится значение k) if (Top>=N) // обработать ситуацию ”Stack is full!”; Stack[Top++] = k; // pop (значение извлекается в k) if (Top==0) throw ”Stack is empty!”; k = Stack[--Top];

Слайд 26





Очереди
Очередь – структура данных, предназначенная для выполнения следующих операций:
основные
занесение нового элемента в конец очереди (push);
удаление элемента из начала очереди (pop)
дополнительные
просмотр и, возможно, изменение элементов, находящихся в очереди, без изменения ее структуры
Описание слайда:
Очереди Очередь – структура данных, предназначенная для выполнения следующих операций: основные занесение нового элемента в конец очереди (push); удаление элемента из начала очереди (pop) дополнительные просмотр и, возможно, изменение элементов, находящихся в очереди, без изменения ее структуры

Слайд 27





Реализация очереди на массивах
Описание слайда:
Реализация очереди на массивах

Слайд 28





Организация циклической очереди
Описание слайда:
Организация циклической очереди

Слайд 29





Программная реализация циклической очереди
int *Queue, Front = 0, Rear = 0;
…
Queue = new int [N+1];
// push (заносится значение k)
if ((Rear+1==Front) || ((Rear==N)&&(Front==0)))
  throw ”Queue is full!”;
Queue[Rear++] = k;
if (Rear>N) Rear=0;
// pop (значение извлекается в k) 
if (Rear==Front)
  throw ”Queue is empty!”;
k = Queue[Front++];
if (Front>N) Front=0;
Описание слайда:
Программная реализация циклической очереди int *Queue, Front = 0, Rear = 0; … Queue = new int [N+1]; // push (заносится значение k) if ((Rear+1==Front) || ((Rear==N)&&(Front==0))) throw ”Queue is full!”; Queue[Rear++] = k; if (Rear>N) Rear=0; // pop (значение извлекается в k) if (Rear==Front) throw ”Queue is empty!”; k = Queue[Front++]; if (Front>N) Front=0;

Слайд 30





Реализация очереди с использованием списков
Описание слайда:
Реализация очереди с использованием списков



Похожие презентации
Mypresentation.ru
Загрузить презентацию