[청년취업사관학교 새싹]핀테커스 수업 4주차(9/20 Day-18)
<학습 내용>
배열
- 인덱스로 바로 접근 가능
- 값의 삽입, 삭제가 어렵다. 해당 인덱스 주변 값을 이동시키는 과정 필요
- 배열을 크리는 선언할 때 지정하며, 한 번 선언하면 크기를 늘리거나 줄일 수 없다
- 구조가 간단하다
리스트
- 값과 포인터를 묶은 노드를 포인터로 연결한 구조
- 인덱스가 없어 head포인터부터 순서대로 접근해야 한다
- 데이터 삽입, 삭제 연산속도가 빠르다
- 선언시, 크기 지정이 필요하지 않다. 크기는 가변적
- 포인터 저장 공간이 필요하여 구조가 복잡
파이썬에서는 배열과 리스트를 구분하지 않는다
스택과 큐
스택
- 리스트에서발전한 형태의 자료구조
- 삽입과 삭제 연산이 후입선출로 이루어 진다
- 깊이우선탐색(DFS)에 효과적
- top : 삽입과 삭제가 일어나는 위치
- s.append(data): top위치에 새로운 데이터를 삽입하는 연산
- s.pop(): top위치에 데이터를 삭제하고 확인하는 연산
- s[-1] : top위치에 현재 있는 데이터를 단순확인하는 연산
큐
- 삽입과 삭제 연산이 선입선출로 이워지는 자료구조
- deque를 이용하여 큐를 구현
- 너비우선탐색(BFS)에서 자주 사용
- rear: 큐에서 가장 끝 데이터를 가리키는 영역
- front: 큐에서 가장 앞의 데이터를 가리키는 영역
- s.append(data): rear부분에 새로운 데이터를 삽입하는 연산
- s.popleft(): front부분에 있는 데이터를 삭제하고 확인하는 연산
- s[0]: 큐의 맨 앞(front)에 있는 데이터를 확인할 때 사용하는 연산