재 현
Stack 본문
728x90
Stack은 데이터를 쌓아 올리는 것과 같이 가장 마지막에 삽입된 데이터가 가장 먼저 삭제되는 구조
- LIFO ( Last-in First-out)
- Stack은 데이터를 후입선출(LIFO)의 방식으로 관리합니다. 가장 마지막에 추가된 데이터가 가장 먼저 제거되는 원칙을 따릅니다. 즉, 새로운 요소는 스택의 맨 위에 추가되며, 삭제할 때는 맨 위의 요소가 제거됩니다.
- 삽입과 삭제 ( Push & Pop )
- Stack에 요소를 삽입하는 작업은 "push"라고 불리며, 가장 위에 요소를 추가합니다. 요소를 삭제하는 작업은 "pop"이라고 불리며, 가장 위의 요소를 제거합니다. push와 pop 연산은 모두 O(1)의 시간 복잡도를 가지며, 상수 시간 안에 수행됩니다.
- 제한된 접근
- Stack은 가장 위에 있는 요소에만 접근할 수 있습니다. 스택에서 데이터를 검색하거나 삭제할 때는 항상 가장 위에 있는 요소에 접근해야 합니다. 따라서 스택은 데이터의 빠른 삽입과 삭제를 위해 설계되었으며, 임의의 위치에서의 접근이 필요하지 않은 경우에 적합합니다.
- 제한된 기능
- Stack은 push, pop, top과 같은 제한된 기능을 제공합니다. push는 요소를 스택의 맨 위에 추가하고, pop은 맨 위의 요소를 제거합니다. top은 현재 스택의 맨 위에 있는 요소를 반환하지만 제거하지는 않습니다. Stack은 복잡한 데이터 구조를 관리하기보다는 간단한 스택 기능을 수행하는 데에 주로 사용됩니다.
stack = []
stack.append(5)
stack.append(3)
stack.pop()
stack.append(4)
stack.pop()
print(stack[::-1]) #최상단 원소부터 출력
print(stack) #최하단 원소부터 출력
728x90
'Computer Science > Data Structure' 카테고리의 다른 글
Queue (0) | 2023.07.22 |
---|---|
Tree (0) | 2021.01.27 |
Array and Linked List (0) | 2021.01.27 |