Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Лекция 3.Линейные структуры данных

Содержание

Абстрактный тип данныхФункция:Обобщение понятия оператора.Инкапсулирование частей алгоритма.Абстрактный тип данных – математическая модель с совокупностью операторов, определённых в рамках этой модели.Обобщение простых типов данных.Инкапсулирование операторов, определённых для АТД.
А.Ф. ЗубаировЛекция 3. Линейные структуры данных Абстрактный тип данныхФункция:Обобщение понятия оператора.Инкапсулирование частей алгоритма.Абстрактный тип данных – математическая модель АТДТип данных – множество значений, которые может принимать переменная данного типа.Структуры данных Линейный список Линейный списокЛинейные списки, у которых операции вставки, удаления и доступа к данным Стек573ВершинаНиз СтекПринцип обслуживания в обратном порядке LIFO: Last-in-First-out. Первым удаляется тот элемент, который Реализация стекаЕсли stack – стек размера SIZE:push(stack, n) – положить (протолкнуть) n Реализация стекаsp-1sp-1push(stack, 2)sp-1push(stack, 5)sp-1push(stack, -3)sp-1push(stack, 10)sp-1pop(stack)sp-1pop(stack)sp-1push(stack, 4) Реализация стекаЕсли предпринимается попытка снять элемент с пустого стека (sp==-1), говорят, что Реализация стекаpush(stack, m)  Если (стек_не_заполнен) {    sp++; // Реализация стекаpop(stack)  Если (стек_не_пуст) {    снять stack[sp]; // ОчередьПринцип обслуживания в порядке поступления FIFO: First-in-First-out. Первым удаляется тот элемент, который Реализация очередиЕсли queue – очередь размера SIZE:enqueue(queue, n) – поместить n в Реализация очередиfrontrearrearrearrearenqueue(queue, 5)enqueue(queue, 7)enqueue(queue, 1)enqueue(queue, 3)enqueue(queue, 2)frontfrontfrontdequeue(queue)dequeue(queue)enqueue(queue, 10)enqueue(queue, 0)enqueue(queue, 4) Реализация очередиДля удобства стоит положить front=rear=0.При работе с очередью может возникнуть недостаток Реализация очередиenqueue(queue, m)  Если (rear == SIZE) { // закольцевать Реализация очередиdequeue(queue)  Если (rear == front) { // недостаток Очередь с приоритетамиОчередь с приоритетами priorityQueue– АТД на модели множеств с операторами Очередь с приоритетамиenqueue(priorityQueue, 5, 5)enqueue(priorityQueue, 4, 3)enqueue(priorityQueue, 7, 6)enqueue(priorityQueue, 3, 2)reardequeueMin(priorityQueue)reardequeueMin(priorityQueue)rear ДекОчередьДекПостановка элемента справаУдаление элемента справаПостановка элемента слеваУдаление элемента слева
Слайды презентации

Слайд 2 Абстрактный тип данных
Функция:
Обобщение понятия оператора.
Инкапсулирование частей алгоритма.
Абстрактный тип

Абстрактный тип данныхФункция:Обобщение понятия оператора.Инкапсулирование частей алгоритма.Абстрактный тип данных – математическая

данных – математическая модель с совокупностью операторов, определённых в

рамках этой модели.
Обобщение простых типов данных.
Инкапсулирование операторов, определённых для АТД.

Слайд 3 АТД
Тип данных – множество значений, которые может принимать

АТДТип данных – множество значений, которые может принимать переменная данного типа.Структуры

переменная данного типа.
Структуры данных для представления АТД – набор

переменных различных типов, объединённых определённым образом.
Базовый строительный блок структуры данных – ячейка, предназначенная для хранения значения определенного базового или составного типа данных.

Слайд 4 Линейный список

Линейный список

Слайд 5 Линейный список
Линейные списки, у которых операции вставки, удаления

Линейный списокЛинейные списки, у которых операции вставки, удаления и доступа к

и доступа к данным выполняются в первом или последнем

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

Слайд 6 Стек
5
7
3
Вершина
Низ

Стек573ВершинаНиз

Слайд 7 Стек
Принцип обслуживания в обратном порядке LIFO: Last-in-First-out. Первым

СтекПринцип обслуживания в обратном порядке LIFO: Last-in-First-out. Первым удаляется тот элемент,

удаляется тот элемент, который был помещён в стек последним.
Добавление

в стек: объект кладётся на стек (операция проталкивания - push).
Удаление из стека: снимается верхний элемент стека (операция выталкивания - pop).


Слайд 8 Реализация стека
Если stack – стек размера SIZE:
push(stack, n)

Реализация стекаЕсли stack – стек размера SIZE:push(stack, n) – положить (протолкнуть)

– положить (протолкнуть) n на стек stack;
pop(stack) – снять

(вытолкнуть) верхний элемент со стека stack;
Стек может быть сымитирован при помощи массива stack и указателя стека sp (stack pointer). Если стек пуст, то sp = -1.

Слайд 9 Реализация стека
sp
-1
sp
-1
push(stack, 2)
sp
-1
push(stack, 5)
sp
-1
push(stack, -3)
sp
-1
push(stack, 10)
sp
-1
pop(stack)
sp
-1
pop(stack)
sp
-1
push(stack, 4)

Реализация стекаsp-1sp-1push(stack, 2)sp-1push(stack, 5)sp-1push(stack, -3)sp-1push(stack, 10)sp-1pop(stack)sp-1pop(stack)sp-1push(stack, 4)

Слайд 10 Реализация стека
Если предпринимается попытка снять элемент с пустого

Реализация стекаЕсли предпринимается попытка снять элемент с пустого стека (sp==-1), говорят,

стека (sp==-1), говорят, что возникает недостаток элементов (underflow) -

стек опустошается. Недостаток элементов, как правило не является ошибкой.
Если элемент кладётся на заполненный стек (sp==SIZE), говорят, что возникает избыток элементов (overflow) – стек переполняется . Как правило, это считается ошибкой, так как положить элемент на стек необходимо, но места в стеке для него нет.
Проверка как на опустошение, так и на переполнение должны обрабатываться при программной реализации стека.

Слайд 11 Реализация стека
push(stack, m)

Если (стек_не_заполнен) {

Реализация стекаpush(stack, m) Если (стек_не_заполнен) {  sp++; // модификация указателя

sp++; // модификация указателя

stack[sp] = m; // сохранение
} иначе {
// переполнение
}

Слайд 12 Реализация стека
pop(stack)

Если (стек_не_пуст) {

Реализация стекаpop(stack) Если (стек_не_пуст) {  снять stack[sp]; // выталкивание

снять stack[sp]; // выталкивание
sp--;

// модификация указателя
} иначе {
// опустошение;
}

Слайд 13 Очередь
Принцип обслуживания в порядке поступления FIFO: First-in-First-out. Первым

ОчередьПринцип обслуживания в порядке поступления FIFO: First-in-First-out. Первым удаляется тот элемент,

удаляется тот элемент, который был помещён в очередь первым.
Очередь

имеет начало – front и конец – rear.
Добавление в очередь: со стороны конца объект ставится в очередь (операция помещения в очередь - enqueue).
Удаление из очереди: со стороны начала объект выводится из очереди (операция вывода из очереди - dequeue).


Слайд 14 Реализация очереди
Если queue – очередь размера SIZE:
enqueue(queue, n)

Реализация очередиЕсли queue – очередь размера SIZE:enqueue(queue, n) – поместить n

– поместить n в очередь queue;
dequeue(queue) – вывести первый

элемент из очереди queue;
Очередь может быть сымитирована при помощи массива queue и указателя front на начало очереди и rear на конец очереди.

Слайд 15 Реализация очереди
front
rear
rear
rear
rear
enqueue(queue, 5)
enqueue(queue, 7)
enqueue(queue, 1)
enqueue(queue, 3)
enqueue(queue, 2)
front
front
front
dequeue(queue)
dequeue(queue)
enqueue(queue, 10)
enqueue(queue,

Реализация очередиfrontrearrearrearrearenqueue(queue, 5)enqueue(queue, 7)enqueue(queue, 1)enqueue(queue, 3)enqueue(queue, 2)frontfrontfrontdequeue(queue)dequeue(queue)enqueue(queue, 10)enqueue(queue, 0)enqueue(queue, 4)

0)
enqueue(queue, 4)


Слайд 16 Реализация очереди
Для удобства стоит положить front=rear=0.
При работе с

Реализация очередиДля удобства стоит положить front=rear=0.При работе с очередью может возникнуть

очередью может возникнуть недостаток элементов (underflow) и избыток элементов

(overflow).
В случае, если реализована циклическая организация очереди (по достижении последней ячейки массива запись происходит в первую):
очередь можно считать полной, если после добавления нового элемента rear совпадает с front;
очередь можно считать пустой, если перед удалением элемента выясняется, что rear совпадает с front.


Слайд 17 Реализация очереди
enqueue(queue, m)
Если (rear == SIZE)

Реализация очередиenqueue(queue, m) Если (rear == SIZE) { // закольцевать

{ // закольцевать
rear = 0;

} иначе {
rear++;
}
Если (rear == front) { // избыток
// переполнение
} иначе {
queue[rear] = m;
}

rear

front

rear

front


Слайд 18 Реализация очереди
dequeue(queue)
Если (rear == front) {

Реализация очередиdequeue(queue) Если (rear == front) { // недостаток  //

// недостаток
// опустошение
}

иначе {
Если (front == SIZE) {
front = 0;
} иначе {
front++;
}
вывести queue(front);
}

rear

front

rear

front


Слайд 19 Очередь с приоритетами
Очередь с приоритетами priorityQueue– АТД на

Очередь с приоритетамиОчередь с приоритетами priorityQueue– АТД на модели множеств с

модели множеств с операторами добавления в очередь и удаления

из очереди элемента с минимальным приоритетом: enqueue и dequeueMin.
enqueue понимается в обычном смысле, dequeueMin является функцией, которая возвращает элемент с наименьшим приоритетом и удаляет его из очереди.
При организации АТД priorityQueue следует учесть, что ячейка данного линейного списка содержит не только значение, но и его приоритет. Таким образом функция постановки в очередь принимает следующий вид: enqueue(priorityQueue, key, priority)

Слайд 20 Очередь с приоритетами
enqueue(priorityQueue, 5, 5)
enqueue(priorityQueue, 4, 3)
enqueue(priorityQueue, 7,

Очередь с приоритетамиenqueue(priorityQueue, 5, 5)enqueue(priorityQueue, 4, 3)enqueue(priorityQueue, 7, 6)enqueue(priorityQueue, 3, 2)reardequeueMin(priorityQueue)reardequeueMin(priorityQueue)rear

6)
enqueue(priorityQueue, 3, 2)
rear
dequeueMin(priorityQueue)
rear
dequeueMin(priorityQueue)
rear


  • Имя файла: lektsiya-3lineynye-struktury-dannyh.pptx
  • Количество просмотров: 102
  • Количество скачиваний: 0
- Предыдущая School life. Schoolwork. Grade 10
Следующая - Семья