100DaysOfCode의 37일차: 기본 데이터 구조, 스택
내가 배운 몇 가지 개념
파이썬 코드
class Stack:
def __init__(self, size=5):
self.size = size
self.stack = [None] * size
self.pointer = -1
print(f"Stack Initialized with size: {size}.")
def push(self, data):
self.pointer+=1
if self.pointer >= self.size:
self.pointer-=1
print(f"Overflow occured. Hence {data} couldn't be inserted.")
else:
self.stack[self.pointer] = data
print(f"{data} pushed to {self.pointer} position of stack. New Stack is {self.stack}.")
def pop(self):
if self.pointer < 0:
self.pointer = -1
print("Underflow occured. Nothing to pop.")
else:
p = self.stack[self.pointer]
self.stack[self.pointer] = None
print(f"{p} popped from {self.pointer} position of stack. New Stack is {self.stack}.")
self.pointer -= 1
stack = Stack(3)
stack.push(2)
stack.push(1)
stack.push(0)
stack.pop()
stack.pop()
stack.push(5)
stack.push(6)
stack.push(3)
stack.pop()
stack.pop()
stack.pop()
stack.pop()
stack.push(11)
나는 이 간단한 작업을 수행하는 방법을 알아내기 위해 몇 시간 동안 갇혀 있었고 여전히 약간의 오류가 있을 수 있지만 위 코드의 출력은 명확하고 아래에 나와 있습니다.
Stack Initialized with size: 3.
2 pushed to 0 position of stack. New Stack is [2, None, None].
1 pushed to 1 position of stack. New Stack is [2, 1, None].
0 pushed to 2 position of stack. New Stack is [2, 1, 0].
0 popped from 2 position of stack. New Stack is [2, 1, None].
1 popped from 1 position of stack. New Stack is [2, None, None].
5 pushed to 1 position of stack. New Stack is [2, 5, None].
6 pushed to 2 position of stack. New Stack is [2, 5, 6].
Overflow occured. Hence 3 couldn't be inserted.
6 popped from 2 position of stack. New Stack is [2, 5, None].
5 popped from 1 position of stack. New Stack is [2, None, None].
2 popped from 0 position of stack. New Stack is [None, None, None].
Underflow occured. Nothing to pop.
11 pushed to 0 position of stack. New Stack is [11, None, None].
DAY 37 of :* 기본 데이터 구조 학습: 스택* 스택은 후입선출 방식으로 작동pic.twitter.com/njuuh87acZ — Durga Pokharel(@mathdurga)
Reference
이 문제에 관하여(100DaysOfCode의 37일차: 기본 데이터 구조, 스택), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/iamdurga/day-37-of-100daysofcode-basic-data-structure-stack-2h6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)