반응형
<학습일기>
Ch 06. 자료구조 - 스택
스택
-데이터를 제한적으로 접근할 수 있는 구조
-한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조
- 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조
1. 스택 구조
- 스택은 LIFO(Last-in, First-out) or FILO(First-in, Last-out) 데이터 관리 방식을 따름
- LIFO : 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 정책
- FILO : 처음에 넣은 데이터를 가장 마지막에 추출하는 데이터 관리 정책
- 대표적인 스택의 활용
- 컴퓨터 내부의 프로세스 구조의 함수 동작 방식
- 주요기능
- push(): 데이터를 스택에 넣기
- pop() : 데이터를 스택에서 꺼내기
2. 스택 구조와 프로세스 스택
- 스택 구조는 프로세스 실행 구조와 가장 기본
- 함수 호출시 프로세스 실행 구조를 스택과 비교해서 이해 필요
def recursive(data):
if data < 0:
print("ended")
else:
print(data)
recursive(data-1)
print("returned",data)
recursive(4) --> 4 3 2 1 0 ended returned 0 returned 1 returned 2 returned 3 returned 4
--> 재귀함수를 스택구조로 이해해보기
3. 자료 구조 스택의 장점
- 장점
- 구조가 단순해서 구현이 쉽다
- 데이터 저장/읽기 속도가 빠르다
- 단점 (일반적인 스택 구현시)
- 데이터 최대 개수를 미리 정해야한다.
- 파이썬의 경우 재귀 함수는 1000번까지만 호출이 가능하다
- 저장공간의 낭비가 발생할 수 있음
- 미리 최개 개수만큼 저장 공간을 확보해야함.
- 스택은 단순하고 빠른 성능을 위해 사용되므로, 보통 배열 구조를 호라용해서 구현하는 것이 일반적이다. 이 경우에는 위에서 열거한 단점이 있을 수 있다.
<수강인증>
*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.*
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기
#알고리즘기술면접완전정복올인원패키지Online
반응형
'패스트캠퍼스 챌린지' 카테고리의 다른 글
패스트캠퍼스 챌린지 6일차 (0) | 2022.01.29 |
---|---|
패스트캠퍼스 챌린지 5일차 (0) | 2022.01.28 |
패스트캠퍼스 챌린지 3일차 (0) | 2022.01.26 |
패스트캠퍼스 챌린지 2일차 (0) | 2022.01.25 |
패스트캠퍼스 챌린지 1일차 (0) | 2022.01.24 |