쎈과 서연이의 행방불명 난 이런 사람이야. 지금 이 시간에는 말이지…

135/102

Queue, Deque, Stack

polygonal ds 를 보면서 그간 몰랐던 지식들을 많이 알게 되는 것 같다. 그 중, 관심을 끄는 것들이 Queue, Deque, Stack 이라는 자료구조 인데, 1열의 데이터들을 순차적으로 처리하는 방법론들이 있다는 것이 꽤 흥미로웠다.

큐, 스택 뭐 이런 말들을 들으면서 "뭔소리지?" 했었는데 실제로 해보니깐 어려운 개념들은 아니더라. (정리가 된 개념이니깐 당연히 어렵지 않겠지...;;;) 어려운 개념은 아닌데 꽤 큰 도움이 되는 것 같다. 대충 이런것들을 알고 작업을 하다보니 데이터들의 순차처리 부분의 설계에 대해서 다시 한 번 생각하게 되더라...

Queue 의 개념은 선입선출의 개념으로 정리할 수 있을듯 싶고, Stack 은 선입후출, 후입선출의 개념으로 정리가 되는 것 같다. Deque 는 양방향이 뚫린 입출이 양방향적인 녀석으로 정리가 될 것 같고...

각 Queue, Deque, Stack 들을 넘버링 기반의 Arrayed 와 체인 연결 방식의 Linked 로 정리를 해놓았던데, x0, x1 의 교환을 시키는데는 Arrayed 가 더 나을 것 같고, x0 을 x1 의 앞으로 이동시거나 할때 그 중간 x 들을 미는 등의 액션을 시키는데는 Linked 가 더 좋을 것 같다는 느낌이 들었다.

뭐... 이런 유사한 개념들이 더 없는지 살펴보고 싶어졌다. 그간, 그림쟁이, 기획 출신으로 개발을 하면서, 그래픽스를 어떻게 표현하면 되는지에 대한 개념은 있었는데, 막상 그것을 정형화된 논리로 정리하는 것에 어려움을 많이 느꼈었는데, 이렇게 정리된 개념들을 파악하고 있다면 좀 더 손쉽게 개발을 할 수 있을것 같다는 생각이 든다.

발전의 여지가 아주 뚜렷한 꺼리를 발견한다는 것은 꽤나 즐거운 일인 것 같다.

덧글 (2) 엮인글 (0)
  1. 트리랑 그래프 쪽으로 가면 볼 거리가 많을 거예요~

    • 그렇찮아도 Array2, Array3, Queue, Deque, Stack, LinkedList, Iterator 는 대충 이해를 끝냈고, 남은 것들이 Tree, Heap, Graph, GraphArc, BitVector 더라… Tree 랑 Graph 는 이해를 하겠는데, Heap 이랑 BitVector 는 뭔지 잘 모르겠드만…


덧글 남기기


엮인글이 비활성 상태입니다.