본문 바로가기

반응형

Queue

<자료구조 알고리즘> 큐 구현 큐 구현 이번에는 큐을 구현해보자. 동적 배열을 이용해서도 구현을 할 수 있기는 하겠지만 크기가 계속 바뀌어야 하니 굉장히 비효율 적일 것이다. 또한 중간에 있는 데이터에 접근하는 일도 없을 테니 연결리스틀 사용하는 것이 더 효율적일 것이다. 데이터를 삽입하는 곳을 rear(뒤) 삭제하는 곳을 front(앞)이라고 하고 연결리스트 양 끝의 주소를 rearNode와 frontNode에 계속 저장해 놓을 것이다. 연결리스트가 연결되어있는 방향을 잘 보아야 한다. 위 사진과 같이 각 노드의 다음노드는 더 늦게 추가된 데이터를 가르키고 있어야 한다. 삽입 할 때에는 연결리스트의 한쪽 끝(rear)에 데이터를 넣고 그 주소를 rearNode에 저장한다. 삭제 할 때에는 frontNode에 다음 노드를 저장(fro.. 더보기
<자료구조 알고리즘> 큐 큐란? 배열처럼 선형 구조의 자료구조(뭔가 한 줄이라는 느낌)이며 양쪽 끝에서 접근할 수 있고 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 자료구조이다. 스택은 데이터를 쌓는 데에 반해 큐는 데이터를 밀어 넣는다고 생각하면 쉽다. 자 차근차근 알아보도록 하자. 1. 종이컵 디스펜서 정수기 옆에 종이컵을 뽑아 먹을 수 있게 달려있는 종이컵 디스펜서 한 번 쯤은 써 보았을 것이다. 종이컵 디스펜서와 큐의 구조가 굉장히 비슷하다. 종이컵을 뽑을 때에는 아래에서 뽑고 종이컵을 보충해 줄 때에는 위에서 넣는다. 항상 맨 아래의 종이컵만 뽑을 수 있다. (중간에 있는 것을 먼저 뽑을 수는 없다.) 위에서 종이컵을 빼 내거나 아래에서 집어 넣을 수는 없다. 따라서 .. 더보기

반응형