배열, 연결 리스트, 해시 테이블, 트라이 외에도 많은 자료 구조들이 있음
위의 자료 구조를 기반으로 해서 문제 해결에 적합한 새로운 자료 구조를 만들 수도 있음
큐
- 메모리 구조에서 살펴봤듯이 값이 아래로 쌓이는 구조
- 값을 넣고 뺄 때 ‘선입 선출’ 또는 ‘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 강의를 거의2주?3주?에 걸쳐서 다 들었다! 처음에는 괜찮다가 중간에 이해가 안되서 고비가 여러번 왔다.. 특히 코드를 보고 이해를 안되서 계속 보고 강의 다시 듣고 했던 것 같다. 지금도 다 아는 수준은 아니지만 블로그에 정리를 하면서 개념정리가 되는 것 같다. 비전공자가 보기에 기초를 쌓기 좋은 강의다! 다음에 다른 CS강의를 들으면 더 이해가 잘 될 것 같고 다음에는 무슨 강의를 들을지 고민중이다. ^^..
'cs > CS50' 카테고리의 다른 글
6: 자료구조-7(트라이:Retrieval) (0) | 2021.12.11 |
---|---|
6: 자료구조-6(해시 테이블) (0) | 2021.12.11 |
6: 자료구조-5(연결 리스트: 트리) (0) | 2021.12.11 |
6: 자료구조-4(연결 리스트: 코딩과 시연) (0) | 2021.12.11 |
6: 자료구조-3(연결 리스트: 도입) (0) | 2021.12.11 |