반응형
[ 이 게시물은 개념 설명 게시물이고 소스코드는 다음 게시물에 있습니다. ]
자료구조에서 흔히 보이지는 않지만 Bag이라는 자료구조가 있다.
이 자료구조의 원리는 다음과 같다.
'우리는 항상 가방에서 물건을 꺼낼 때 중간에 있는 물건을 먼저 잡기 마련이다. 그리고 그 중간의 물건을 꺼내게 된다'
는 발상에 근거하여 Bag 자료구조가 나타나게 되었다.
그림으로 설명하면 다음과 같다.
처음에는 -1로 초기화 된( 초기화 값은 코더가 설정해 주는 부분이다. )Bag Array가 있다.
이때 한칸씩 Push하여 0번째 배열부터 6번째 배열까지 1~7의 값을 넣게 되었다.
이때 배열 위치를 가리키는 pos라는 변수는 마지막 값 다음 칸을 가리키고 있다.
그다음 Pop를 행할 때 이제 Bag 만의 Pop가 나오는데 (pos-1)과 처음 시작점의 중간 지점( (pos-1)/2 )을 가리키게 하여 Pop을 한다.
그렇게 되면 4자리가 공백이 되니 한칸씩 왼쪽으로 당겨준다(아래 그림 참조) 이렇게 Bag 자료구조는 이루어져 있다.
반응형
'Applied > 자료구조' 카테고리의 다른 글
트리(Tree) 용어 (1) (0) | 2016.04.30 |
---|---|
배열 기반 Bag 자료구조 소스 코드 (0) | 2016.04.21 |
이중 연결 리스트 기반 데크(Dequeue) 소스 코드 (0) | 2016.04.13 |
이중 연결 리스트 기반 데크(Dequeue) 개념 (0) | 2016.04.13 |
Template를 이용한 Stack (0) | 2016.04.11 |