일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 힙
- Cross-origin Resource Sharing
- 자료구조
- OSI 7 layer
- CentOS
- network
- 시험준비
- 우선순위 큐
- cron표현식
- priority queue
- 내부망
- 파이썬
- 18870
- docker
- 명령어
- 이분 탐색
- Docker Compose
- cron
- powershell
- heap
- 스케쥴링
- CORS
- 개념 정리
- array
- 좌표 압축
- 백준
- queue
- datastructure
- cron expression
- python
Archives
- Today
- Total
고양이와 코딩하기
자료구조 - Stack 알아보기 본문
반응형
Stack - 스택
LIFO(Last In First Out)
마지막에 넣은 데이터가 가장 먼저 나오는 구조로 데이터를 저장하는 형식*컴퓨터 내부의 프로세스 구조의 함수 동작 방식
장점과 단점
장점
- 데이터의 빠른 입력/추출
단점
- 맨 위(뒤)의 데이터만 접근 가능
시간 복잡도
- 데이터 입력/추출: O(1)
스택 기능
- push: 마지막 순번으로 데이터 입력
- pop: 마지막 데이터 추출
코드 구현
stack_list = list()
def push(data):
stack_list.append(data)
def pop():
data = stack_list[-1]
del stack_list[-1]
return data
Test - push()
for i in range(10):
push(i)
print("stack size:", len(stack_list))
print("stack data:", stack_list)
stack size: 10
stack data: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Test - pop()
data = pop()
print("pop data:", data)
print("stack size:", len(stack_list))
print("stack data:", stack_list)
pop data: 9
stack size: 9
stack data: [0, 1, 2, 3, 4, 5, 6, 7, 8]
+ 파이썬 리스트의 내장 함수를 사용할 경우
# init stack
stack_list = list()
print("Initialize stack")
print("stack size:", len(stack_list))
print()
# push()
for i in range(10,0,-1):
stack_list.append(i)
print("After Push")
print("stack size:", len(stack_list))
print()
# pop
data = stack_list.pop()
print("After Pop")
print("pop data:", data)
print("stack size:", len(stack_list))
Initialize stack
stack size: 0
After Push
stack size: 10
After Pop
pop data: 1
stack size: 9
참고 자료
반응형
'D E V E L O P E R 💻 > Today I Learned' 카테고리의 다른 글
[정보처리기사] 실기 준비 오답노트 (1) (0) | 2025.03.06 |
---|---|
(CORS) Cross-Origin Resource Sharing (0) | 2024.08.21 |
알고리즘 - 우선순위 큐, 힙 (0) | 2023.01.26 |
자료구조 - Queue 알아보기 (0) | 2021.11.03 |
자료구조 - Array 알아보기 (0) | 2021.11.03 |
Comments