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

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
УІ
Кафедра:
Не вказано

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

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

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

Сосєдський Владислав, ТР-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() + " "); } } }
Антиботан аватар за замовчуванням

05.07.2023 22:07-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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