[DataStructures] 큐(Queue) - 데큐 ArrayList(Double-ended queue (Decue using ArrayList))
Algorithm&DataStructures/Queue 2016. 11. 22. 18:05큐(Queue) - 데큐 ArrayList(Double-ended queue (Decue using ArrayList))
- 일반 큐와 달리 데큐는 rear와 front에서 동시에 삽입 삭제가 이루어 질수 있다
- ArrayList를 사용하여 구현
1. ArrayList
1) 추가(add)
1 2 3 4 5 6 | List<Integer> list = new ArrayList<>(); //자동으로 배열의 뒤로 추가 list.add( 10 ); //특정 인덱스 위치에 추가 list.add( 1 , 10 ); |
2) 삭제(remove)
1 2 | //특정 인덱스 삭제 list.remove( 0 ); |
3) 가져오기(get)
1 2 | //특정 인덱스 값 가져오기 list.get( 1 ); |
2. 구현 - ArrayList
1) 정의
12List<Integer> decue =
new
ArrayList<>();
- ArrayList 특성상 사이즈가 동적으로 증가한다, 그렇기 때문에 사이즈를 처음에 명시 하지 않아도 된다
- ArrayList 만 생성
2) insertFront(), insertRear()
1 2 3 4 5 6 7 8 9 10 11 | public void insertFront( int element){ System.out.println( "inserting at front:" +element); decue.add( 0 ,element); System.out.println(decue); } public void insertRear( int element){ System.out.println( "inserting at rear:" +element); decue.add(element); System.out.println(decue); } |
3) removeFront(), removeRear()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public void removeFront(){ if (decue.isEmpty()){ System.out.println( "queus is empty" ); return ; } System.out.println( "removing at front:" +decue.remove( 0 )); System.out.println(decue); } public void removeRear(){ if (decue.isEmpty()){ System.out.println( "decue is empty" ); return ; } System.out.println( "removing at rear:" +decue.remove(decue.size()- 1 )); System.out.println(decue); } |
4) peekFront(), peekRear()
1 2 3 4 5 6 7 8 9 10 11 12 13 | public int peekFront(){ int element = decue.get( 0 ); System.out.println( "Element is front" + element); return element; } public int peekRear(){ int element = decue.get(decue.size()- 1 ); System.out.println( "Element is front" + element); return element; } |
5) main()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public static void main(String[]args){ DoubleEndedQueue que = new DoubleEndedQueue(); que.insertFront( 50 ); que.insertFront( 30 ); que.insertRear( 10 ); que.insertRear( 60 ); que.removeFront(); que.removeRear(); que.removeFront(); que.removeRear(); que.removeFront(); } |
'Algorithm&DataStructures > Queue' 카테고리의 다른 글
[DataStructures] 큐(queue) - 우선순위 큐(Priority queue) (0) | 2016.11.28 |
---|---|
[DataStructures] 큐(queue) - 더블링크드리스트를 이용한 데큐(Deque using doubly linked list) (0) | 2016.11.28 |
[DataStructures] 큐(Queue) - 동적 큐(DynamicQueue) (0) | 2016.11.22 |
[DataStructures] 큐(Queue) - 간단큐예제(SimpleQueue) (0) | 2016.11.18 |