본문 바로가기
cs/CS50

6: 자료구조-8(스택, 큐, 딕셔너리)

by 이쟝 2021. 12. 11.

배열, 연결 리스트, 해시 테이블, 트라이 외에도 많은 자료 구조들이 있음

위의 자료 구조를 기반으로 해서 문제 해결에 적합한 새로운 자료 구조를 만들 수도 있음

 

- 메모리 구조에서 살펴봤듯이 값이 아래로 쌓이는 구조

- 값을 넣고 뺄 때 ‘선입 선출’ 또는 ‘FIFO’(First In First Out)’라는 방식을 따르게 됨(가장 먼저 들어온 값이 가장 먼저 나가는 것) -> 줄을 설 때 가장 먼저 줄을 선 사람이 들어가는 것

- 배열이나 연결 리스트를 통해 구현 가능함

- 큐의 두 가지 기본 연산

enqueue(get in line): 줄에 들어가서 서는 것

dequeue(get out of line): 줄을 빠져나오는 것


스택

- 메모리 구조에서 살펴봤듯이 값이 위로 쌓이는 구조

- 값을 넣고 뺄 때 ‘후입 선출’ 또는 ‘LIFO(Last In First Out)’라는 방식을 따르게 됨(가장 나중에 들어온 값이 가장 먼저 나가는 것) -> 뷔페에서 가장 나중에 쌓인 접시를 먼저 들고 가는 것

- 배열이나 연결 리스트를 통해 구현 가능함

- 스택의 두 가지 기본 연산(요소를 추가하고 제거한다는 것을 의미)

push: 스택에 어떤 요소를 밀어 넣는다는 의미

pop: 가장 위의 요소를 뺀다는 의미


딕셔너리

- ‘키’와 ‘값’이라는 요소로 이루어져있는 구조(다양한 쌍으로 이루어진 자료 구조)

- ‘키’에 해당하는 ‘값’을 저장하고 읽어옴 -> ‘학번’에 따라서 ‘학생’이 결정되는 것

- 일반적인 의미에서 ‘해시 테이블’과 동일한 개념이라고도 볼 수 있음

- ‘키’를 어떻게 정의할 것인지가 중요함

 

 

https://www.boostcourse.org/cs112/joinLectures/41307

 

모두를 위한 컴퓨터 과학 (CS50 2019)

부스트코스 무료 강의

www.boostcourse.org

 

지금까지 소소하게 느낀점

CS50 강의를 거의2주?3주?에 걸쳐서 다 들었다! 처음에는 괜찮다가 중간에 이해가 안되서 고비가 여러번 왔다.. 특히 코드를 보고 이해를 안되서 계속 보고 강의 다시 듣고 했던 것 같다. 지금도 다 아는 수준은 아니지만 블로그에 정리를 하면서 개념정리가 되는 것 같다. 비전공자가 보기에 기초를 쌓기 좋은 강의다! 다음에 다른 CS강의를 들으면 더 이해가 잘 될 것 같고 다음에는 무슨 강의를 들을지 고민중이다. ^^..