Gerçek Hayat Problemleri ve Çözümler
Kod editörleri, parantezlerin doğru kapatılıp kapatılmadığını (Balanced Parentheses) Stack kullanarak kontrol eder.
def parantez_kontrol(ifade):
stack = []
eslesme = {')': '(', ']': '[', '}': '{'}
for char in ifade:
if char in "({[":
stack.append(char)
elif char in ")}]":
if not stack: return False
son_acilan = stack.pop()
if son_acilan != eslesme[char]:
return False
return len(stack) == 0
print(f"((A+B)) -> {parantez_kontrol('((A+B))')}")
print(f"{{[A+B]}} -> {parantez_kontrol('{[A+B]}')}")
print(f"((A+B) -> {parantez_kontrol('((A+B)')}")
print(f")A+B( -> {parantez_kontrol(')A+B(')}")
Tarayıcıda veya Word'de "Geri Al" (Ctrl+Z) ve "İleri Al" (Ctrl+Y) işlemleri için İki Stack kullanılır.
class Tarayici:
def __init__(self):
self.gecmis = [] # Undo Stack
self.ileri = [] # Redo Stack
self.aktif_sayfa = "Ana Sayfa"
def git(self, url):
self.gecmis.append(self.aktif_sayfa)
self.aktif_sayfa = url
self.ileri.clear()
print(f"🌐 Gidildi: {url}")
def geri(self):
if not self.gecmis: return
self.ileri.append(self.aktif_sayfa)
self.aktif_sayfa = self.gecmis.pop()
print(f"⬅️ Geri: {self.aktif_sayfa}")
def ileri_git(self):
if not self.ileri: return
self.gecmis.append(self.aktif_sayfa)
self.aktif_sayfa = self.ileri.pop()
print(f"➡️ İleri: {self.aktif_sayfa}")
# Test
chrome = Tarayici()
chrome.git("google.com")
chrome.git("youtube.com")
chrome.geri()
chrome.ileri_git()