Research note

[ 자료구조 ] 스택 (stack)

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

Source

이 글은 기존 Tistory 블로그에서 옮겨온 글입니다. 원문: https://jms3084.tistory.com/12

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 &gt;=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라고 한다.

Search titles, venues, and tags.

move · openesc close