Skip to content

Latest commit

 

History

History
68 lines (46 loc) · 3.49 KB

File metadata and controls

68 lines (46 loc) · 3.49 KB

Седмица 4 - Стек (задачи със списъци)

Имплементация с динамичен масив

Имплементация със свързан списък

Решения на задачите

Използвайте структурата от данни стек за решаването на следните задачи:

Задача 1:

Проверете дали даден едносвързан списък с char елементи е палиндром.

Пример: 
Входен списък: A -> B -> C -> D -> C -> B -> A 
Резултат:  Is Palindrome

Задача 2:

Даден е двусвързан списък от стрингове. Всеки елемент от списъка се състои от отварящи и затварящи скоби. Напишете функция, която намира най-дългата последователност от балансирани скоби във всеки стринг и модифицира списъка като на мястото на низа записва намерената дължина.

Пример: 
Входен списък: ()))((()())(() <=> ()() <=> (((( <=> (()())(() <=> ((()() <=> )))()))()
Резултат: 6 <=> 4 <=> 0 <=> 6 <=> 4 <=> 2

Задача 3:

За всеки елемент от двусвързан списък да се намери първия най-голям елемент, намиращ се от дясната му страна и да се принтира получения резултат. Ако не е намерен най-голям елемент, то за такъв се приема -1. (задачата трябва да бъде решена с едно обхождане на списъка)

Пример:
Входен списък: 15 <=> 9 <=> 2 <=> 3 <=> 1 <=> 5 <=> 13
Резултат:  2 -> 3
           1 -> 5
           3 -> 5
           5 -> 13
           9 -> 13
           13 -> -1
           15 -> -1

Задача 4:

Дефинирайте функция, която намира елементите в двусвързан списък, които са по-големи от всички елементи, намиращи се вдясно от тях и съставя нов списък с намерените елементи, намиращи се в обратен ред на първоначалното им разположение във входния списък. (задачата трябва да бъде решена с едно обхождане на списъка)

Пример: 
Входен списък: 3 <=> 9 <=> 2 <=> 8 <=> 3 <=> 2 <=> 1 <=> 4 <=> 7 
Резултат: 7 <=> 8 <=> 9 

Задача 5:

Дефинирайте функция, която обръща всеки К елемента в двусвързан списък. Решете задачата по два начина - рекурсивно и със стек.

Пример: 
Входен списък: 1 <=> 2 <=> 3 <=> 4 <=> 5 <=> 6 <=> 7 <=> 8 <=> 9 <=> 10, К = 3
Резултат: 3 <=> 2 <=> 1 <=> 6 <=> 5 <=> 4 <=> 9 <=> 8 <=> 7 <=> 10