Содержание
- 2. Определения Массив - это однородный, упорядоченный структурированный тип данных с прямым доступом к элементам. Элементы массива
- 3. Ограничение доступа Массив – доступ к любому элементу Стек, очередь – доступ только к одному элементу.
- 4. Абстракция Стеки, очереди являются более абстрактными сущностями, чем массивы и многие другие структуры данных. Они определяются,
- 5. Стек Абстрактный тип данных, представляющий собой множество элементов, организованных по принципу LIFO (last in — first
- 6. Основные методы работы со стеком push – добавление нового элемента в стек pop – извлечение элемента
- 7. Размер стека Как правило, стек представляет собой небольшую структуру данных. Размерность структуры определяется исходя из каких-то
- 8. Пример применения стека Перестановка букв в слове: Дано слово Надо вывести в наоборот Г О Р
- 9. Стек. Формальное представление Но в Java мы не можем пользоваться указателями
- 10. Реализация стека в Java public StackX(int s) { maxSize = s; stackArray = new long[maxSize]; top
- 11. Реализация стека в Java (2) public long peek(){ return stackArray[top];} public boolean isEmpty(){ return (top ==
- 12. Обработка ошибок if( !theStack.isFull() ) push(item); else System.out.print("Can't insert, stack is full");
- 13. Эффективность стеков Занесение и извлечение элементов из стека выполняется за время O(1). Иначе говоря, время выполнения
- 14. Очереди Структура данных, называемая в информатике очередью, напоминает стек, но в очереди первым извлекается элемент, вставленный
- 15. Методы очереди enqueue — добавление элемента в очередь; dequeue — удаления элемента из очереди new –
- 16. Очередь. Формальное представление Выделяют два способа программной реализации очереди. Первый из них основан на базе массива,
- 17. Реализация очереди в Java 1* private int maxSize; private long[] queArray; private int front; private int
- 18. Реализация очереди в Java 2* public void insert(long j){ if(rear == maxSize-1) rear = -1; queArray[++rear]
- 19. Реализация очереди в Java 3* public long peekFront() { return queArray[front];} public boolean isEmpty(){ return (nItems==0);}
- 20. Реализация очереди без счетчика элементов 1* private int maxSize; private long[] queArray; private int front; private
- 21. Реализация очереди без счетчика элементов 2* public void insert(long j) { if(rear == maxSize-1) rear =
- 22. Реализация очереди без счетчика элементов 3* public long peek(){ return queArray[front];} public boolean isEmpty(){ return (
- 23. Эффективность очередей Вставка и извлечение элементов очереди, как и элементов стека, выполняются за время O(1).
- 24. Дек Дек (deque) представляет собой двустороннюю очередь. И вставка, и удаление элементов могут производиться с обоих
- 25. Приоритетные очереди Очередь с приоритетом (Priority queue) – очередь, в которой элементы имеют приоритет (вес) Поддерживаемые
- 26. Структуры данных, лежащих в основе ПРИОРИТЕТНОЙ ОЧЕРДИ Куча Массив
- 27. Пример реализации 1* (на основе массива) private int maxSize; private long[] queArray; private int nItems; public
- 28. Пример реализации 2* public void insert(long item) { int j; if(nItems==0) queArray[nItems++] = item; else {
- 29. Пример реализации 3* public long remove() { return queArray[--nItems]; } public long peekMin() { return queArray[nItems-1];
- 31. Скачать презентацию