Содержание
- 2. План лекции Стеки Очереди Деки
- 3. Стеки, очереди и деки Это такие динамические структуры, представляющие собой списки, для которых разрешены только операции
- 4. Стеки
- 5. Стек Стек - извлечение и добавление элементов в нем происходит по правилу «Последний пришел, первый вышел»
- 6. Стек Стек – это упорядоченный набор элементов, в котором добавление новых и удаление сущест-вующих элементов допустимо
- 7. Стек В современных компьютерах стек используется для: размещения локальных переменных; размещения параметров процедуры или функции; сохранения
- 8. Стек На стек выделяется ограниченная область памяти. При каждом вызове функции в стек добавляются новые элементы
- 9. Стек Стек - это двухсвязный список, в котором разрешены только операции добавления нового элемента в голову
- 10. Стек Для работы со стеком надо определить, как выполняются две операции – добавление элемента на вершину
- 11. struct Node { Тип1 поле1; Тип2 поле2; ….. Node *next; Node *prev; }; typedef Node *
- 12. struct Node { string word; Node *next; Node *prev; }; typedef Node *PNode; struct Stack {
- 13. Стеки. Операции Операции над стеком: Добавление нового узла в список – операция Push Извлечение (удаление) узла
- 14. Создание нового узла Для стека мы не будем отдельно создавать функцию для создания нового узла, которая
- 15. Добавление узла на вершину стека При добавлении нового узла NewNode на вершину стека надо: 2) установить
- 16. Добавление узла на вершину стека void Push ( Stack &S, string data ) { PNode NewNode;
- 17. Снятие (удаление узла) с вершины стека Функция Pop удаляет верхний элемент и возвращает его данные. Pop
- 18. 4) Рассмотрим только один случай если удаляемый элемент является первым!! 5) Проверяем , это был единственный
- 19. Снятие узла с вершины стека string Pop ( Stack &S ) { PNode TopNode = S.Head;
- 20. Вывод всех элементов стека void Print ( Stack &S ) { PNode TopNode = S.Head; while
- 21. Поиск узла в списке Часто требуется найти в списке нужный элемент (его адрес или данные). Надо
- 22. Поиск узла в списке PNode Find (Stack S, string NewWord) { PNode q = S.Head; while
- 23. Очередь
- 24. Очередь Очередь - список, операции чтения и добавления элементов в котором подвержены правилу «Первый пришел, первый
- 25. Очередь Очередь – это упорядоченный набор элементов, в котором добавление новых элементов допустимо с одного конца
- 26. Очередь Очередь называют структурой типа FIFO (First In – First Out) – первым пришел, первым ушел.
- 27. Очередь Наиболее известные примеры применения очередей в программировании – очередь событий системы Windows и ей подобных.
- 28. Очередь Очередь - это двухсвязный список, в котором разрешены только операции добавления нового элемента в хвост
- 29. Очередь Для работы с очередью надо определить, как выполняются две операции – добавление элемента в конец
- 30. struct Node { Тип1 поле1; Тип2 поле2; ….. Node *next; Node *prev; }; typedef Node *
- 31. struct Node { string word; Node *next; Node *prev; }; typedef Node *PNode; struct Queue {
- 32. Очередь. Операции Операции над очередью: Добавление нового узла в конец очереди – операция Push Извлечение (удаление)
- 33. Добавление узла в очередь Фактически это добавление нового элемента в конец двусвязного списка. Объединим две операции
- 34. Добавление узла в конец очереди void Push (Queue &Q, string data ) { PNode NewNode; NewNode
- 35. Снятие (удаление узла) с начала очереди Функция Pop удаляет верхний элемент и возвращает его данные. Pop
- 36. 4) Рассмотрим только один случай если удаляемый элемент является первым!! 5) Проверяем , это был единственный
- 37. Снятие узла с головы очереди string Pop (Queue &Q ) { PNode TopNode = Q.Head; string
- 38. Вывод всех элементов очереди void Print (Queue &Q ) { PNode TopNode = Q.Head; while (TopNode
- 39. Дек
- 40. Дек Дек (deque) - это упорядоченный набор элементов, в котором добавление новых и удаление существующих элементов
- 41. Дек Дек может быть реализован на основе двусвязного списка. Для дека разрешены четыре операции: 1) добавление
- 42. Спасибо за внимание!
- 44. Скачать презентацию