DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Динамічні структури даних. Алгоритми оброблення стеку

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
ООП
Факультет:
УІ
Кафедра:
Кафедра обчислювальної техніки

Інформація про роботу

Рік:
2023
Тип роботи:
Задача
Предмет:
Структури даних та алгоритми
Група:
ТР-15
Коротко про документ

Про що ця робота

Документ містить практичне завдання з реалізації та оброблення стеку мовою програмування Java. Наведено приклади коду для видалення максимального елемента та вставки нуля після нього.

У роботі розглядаються

  • Динамічні структури даних
  • Алгоритми оброблення стеку
  • Мова програмування Java
  • Маніпуляції з колекціями
  • Пошук елементів у стеку
  • Програмна реалізація стеку

Зміст і розділи

  1. Завдання для виконання
  2. Завдання варіанту
  3. Реалізація класу ArrayStack
  4. Головний метод виконання
Для кого:Студенти технічних спеціальностей та вивчаючі програмування
Викладачі:Викладач кафедри

Ключові поняття

стекструктури данихалгоритммасивpushpoppeeksearchJavaелемент

Частина тексту файла (без зображень, графіків і формул):

[ім’я автора приховано], ТР-15 ПР-5_(25_05) ДИНАМІЧНІ СТРУКТУРИ ДАНИХ. АЛГОРИТМИ ОБРОБЛЕННЯ СТЕКУ. Завдання для виконання. 1. Розробити програму для опису “стеку” та обрати самостійно із списку два завдання. 2. Складіть текст програми (зазначені у завданні дії і вивести результати). 3. Створіть проект в інтегрованому середовищі розробки......(pract_№_призвище.cpp або pract_№_призвище.java). 4. Запустіть програму на виконання, проаналізуйте результати і переконайтеся в правильності рішення задачі. Завдання варіанту: / / / public class PR5 { public static class ArrayStack{ private Object[] S; private int t; public ArrayStack(int capacity){ S = new Object[capacity]; t = -1; } public int size(){ return t + 1; } public boolean isEmpty(){ return (t == -1); } public void push(Object obj){ if(t+1 < S.length) S[++t] = obj; } public Object pop(){ if(isEmpty()) return null; return S[t--]; } public Object peek(){ if(isEmpty()) return null; return S[t]; } public int search(Object obj){ int n = -1; if(isEmpty()) return -1; for(int i = 0;i < S.length;i++){ if(S[i].equals(obj)){ n = i; break; } } if(n == -1){ return -1; } return (S.length - n - 1); //return n; } } public static void main(String[] args) { System.out.println("Завдання 7. Видалити максимальний елемент"); int size = 20; ArrayStack s1 = new ArrayStack(size); int maxValue = 50; System.out.println("Стек:"); for(int i = 0;i < size;i++){ s1.push((int)(Math.random()*maxValue)); System.out.print(s1.peek() + " "); } int t = -1; while(t == -1){ maxValue--; t = s1.search(maxValue); } ArrayStack s1mem = new ArrayStack(t); for(int i = 0;i < t;i++){ s1mem.push(s1.pop()); } System.out.println("\nМаксимальне значення = " + s1.pop()); for(int i = 0;i < t;i++){ s1.push(s1mem.pop()); } ArrayStack s1out = new ArrayStack(size - 1); for(int i = 0;i < size - 1;i++){ s1out.push(s1.pop()); } System.out.println("Стек після видалення масимального елемента:"); for(int i = 0;i < size - 1;i++){ s1.push(s1out.pop()); System.out.print(s1.peek() + " "); } System.out.println("\nЗавдання 10. Знайти максимальний елемент “стека” і вставити після нього 0"); ArrayStack s2 = new ArrayStack(size); maxValue = 50; System.out.println("Стек:"); for(int i = 0;i < size;i++){ s2.push((int)(Math.random()*maxValue)); System.out.print(s2.peek() + " "); } t = -1; while(t == -1){ maxValue--; t = s2.search(maxValue); } ArrayStack s2mem = new ArrayStack(t); for(int i = 0;i < t;i++){ s2mem.push(s2.pop()); } System.out.println("\nМаксимальне значення = " + s2.peek()); s2.push(0); for(int i = 0;i < t;i++){ s2.push(s2mem.pop()); } ArrayStack s2out = new ArrayStack(size + 1); for(int i = 0;i < size;i++){ s2out.push(s2.pop()); } System.out.println("Стек після додавання 0:"); for(int i = 0;i < size + 1;i++){ s2.push(s2out.pop()); System.out.print(s2.peek() + " "); } } }
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!