작성
·
242
·
수정됨
답변 1
1
안녕하세요 ㅎㅎ
내부적으로 어떠한 자료구조를 쓰느냐에 따라 결정된다고 보시면 됩니다.
map같은 경우 내부적으로 레드블랙트리를 쓰죠? 그렇기 때문에 map은 비선형트리라고 할 수 있습니다.
나머지 또한 다음과 같습니다.
map >> 비선형 트리
set >> 비선형 트리
hashtable >> 비선형 트리 또는 선형 - 연결리스트
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
흠..
최종적으로는 배열 또는 노드를 이용한 연결리스트 방식을 사용해서 구현한다는 생각이 드는데 혹시 맞을까요??
>> 어느정도는 맞긴합니다만... 이렇게 이해하시면 됩니다. 깊게 봤을 때 내부적으로는 배열 또는 노드를 이용한 연결리스트 방식을 사용하는 것도 있지만.. 그렇다고 해서 무조건 최종적으로는 배열 또는 노드를 이용한 연결리스트 방식을 사용해서 구현한다.라고 답하는 것은 아닌 것 같습니다.
예를 들어 레드블랙트리를 이용해 map을 구현하는데요. 이를 노드를 이용해서 map을 구현했다는 워딩보다는 레드블랙트리를 이용해 map을 구현한다라는 워딩이 더 정해인 것 같습니다.
자료구조의 일부인 큐, 스택 구현 예제들을 구글링 해보면 결국 배열이나 연결리스트로 구현하고 있고
>> 이 경우에는 아마 해당 언어가 큐를 제공해주지 않아서 배열이나 연결리스트로 구현할뿐이지, C++에서는 큐, 스택 자체를 자료구조로 제공합니다. 이는 언어의 차이지 일반화시킬 수 없는 부분입니다.
예를 들어 자바의 stack의 경우
지금 보시는 것처럼 vector를 상속받아 구현됩니다. 하지만 이는 언어의 특성일 뿐입니다.
C++의 stack의 경우 vector와는 무관하게 독자적인 컨테이너로 구현됩니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
빠른댓글 감사합니다..ㅠ ㅠ
그리고 제가 이해하기로는 대부분의 자료구조들이
논리상으로는 어떠한 형태로 데이터를 저장하고 관리하는지에 따라 자료구조 종류가 달라지지만
최종적으로는 배열 또는 노드를 이용한 연결리스트 방식을 사용해서 구현한다는 생각이 드는데 혹시 맞을까요??
자료구조의 일부인 큐, 스택 구현 예제들을 구글링 해보면
결국 배열이나 연결리스트로 구현하고 있고
자바 컬렉션 소스들을 까봐도 최종적으로는
배열에 저장하거나 노드에 저장해서 연결시키거나 하고 있는거 같아서용..