Йо. Честит ден на труда на всички. Надяваме се, че сте прекарали деня добре и успех на тези от вас, които започват училище!

Днес ще внедрим собствен стек!

Стекът е важна структура от данни, която използва проста концепция - първи влиза, последен излиза. Каквото и да избутате първо на върха на стека си, ще напусне последно. Визуално представяне на стек може да се види по-долу (направено от вас наистина с помощта на добрата стара боя на Microsoft).

След като вече знаем какво е стек, нека да разгледаме какви операции могат да се използват върху стека. Основните две операции са натискане и изскачане. Push поставя стойност в горната част на стека, pop я изважда и я връща. Има и peek, който връща горната стойност на стека, без да го изважда, и накрая, има празен, който ще върне булева стойност, описваща дали стекът е празен.

Сега, след като знаем всичко, от което се нуждаем в нашия стек, нека се заемем с кодирането!

Първо, ще създадем нашия клас и нашата init функция. Това инициализира нашия стек.

След това ще направим нашата празна функция. Това просто връща True, ако е празно, и False, ако има някакви стойности в нашия стек.

След това ще създадем нашите функции за натискане и изскачане. Push може лесно да се реализира с помощта на append() в нашия списък, а pop може да се реализира с помощта на функцията pop() в нашия списък. Трябва да запомним да повдигнем изключение, ако стекът също е празен.

И накрая, ще направим нашата функция за надникване. Peek просто връща горната стойност на стека. Също така трябва да запомним да предизвикаме изключение, ако стекът е празен за тази функция.

И ние сме donezo! Лесен стек, който създадохме само за няколко минути в само 20 реда код. Можете да добавите към него, като добавите други стекови функции, като min, max, length и др.

Вижте кода на GitHub.

Ще правим страхотен проблем следващата седмица (който може или не може да използва стекове (шегувам се, че определено ще го направи), така че следете!

До следващия път ❤