1. 스택이 비었는지 확인하는 함수
if self.top == self.size - 1:
return True
else:
return False
2. 스택이 꽉 차있는지 확인하는 함수
def is_stack_empty(self):
if self.top == -1:
return True
else:
return False
3. push 함수
def push(self, data):
if (self.is_stack_full()):
return
self.top += 1
self.stack[self.top] = data
4. pop 함수
def pop(self):
if (self.is_stack_empty()):
return None
data = self.stack[self.top]
self.stack[self.top] = None
self.top -= 1
return data
5. peek 함수
def peek(self):
if self.is_stack_empty():
return None
return self.stack[self.top]
6. 실습 push, pop 확인하는 함수
def validate_stack_sequences(self, pushed, popped):
i = 0
c = 0
while True:
if i < len(pushed):
self.push(pushed[i])
if self.stack[self.top] == popped[c]:
self.pop()
c+=1
i+=1
if i >=len(pushed):
if self.stack[self.top] == popped[c]:
self.pop()
c+=1
else:
return False
if (self.is_stack_empty()):
return True
7. 스택 원리
- 스택은 선입후출(FILO) 구조이다.
- 통로가 하나밖에 없다.
- 스택에서 최상단의 값을 top이라고 한다.
- 스택에 데이터를 삽입하는 작동을 push라고 한다.
- 스택에서 데이터를 추출하는 작동을 pop라고 한다.
- 스택에서 top값을 확인하는 작동을 peek라고 한다.