
Collection 인터페이스를 직접 구현해보자.인스턴스 변수와 생성자ArrayList는 이름 그대로 배열에 요소들을 저장한다.그래서 배열과 size를 인스턴스 변수로 갖는다.생성자는 두개가 있는데 뒤에 나올 clone() 함수를 수행하기 위해 복사 생성자를 하나 만들

clear() 함수. head와 tail을 null로 해주는 방법은 gc에게 메모리 해제를 맡기는 방법이다. 나는 이 방법이 모든 노드를 반복문으로 돌아서 null로 초기화를 시키는 명시적인 방법보다 수행시간이 좋은 방법인 줄 알았다. 하지만 잘 생각해보면 gc가

Stack 자료구조를 구현해 보자.Stack은 LIFO. 후입선출인 자료구조이다.스택에서는 배열과 tos(Top Of Stack)이라는 인스턴스 변수가 선언되어야 한다.스택은 후입 선출이다. 늦게 저장된 데이터를 우선순위로 빼내어준다.후에 배울 Queue와는 반대되는

Queue는 Stack과 반대되는 자료구조이다.First In First Out. 먼저 들어온 데이터가 먼저 나간다.Queue를 구현하는 방식은 크게 두개로 나뉘는데 먼저 배열에 데이터를 저장하는 방식으로 구현해보자.Queue는 List와는 다르게 처음 요소의 인덱스가

Queue를 구현하는 방식은 크게 두가지로 나뉜다.앞서 구현했던 Array방식과 오늘 포스팅할 Node방식이다.Array방식으로 Queue를 구현하면 배열에 쏠림 현상이 발생한다. 그래서 원형으로 배열을 생각해서 순환구조를 이루게 했다.Node로 구현하면 위의 작업을

저번까지는 Queue를 구현해봤다.이번부터는 Deque을 구현해 보겠다.Deque도 구현하는 방식이 크게 두개가 있다.먼저 Array로 구현해 보겠다.앞서 구현한 Queue는 선입선출이었다.삽입은 rear에서 일어나고, 삭제는 front에서 일어났다.Deque은 Dou
저번 시간에는 Deque을 Array로 구현해봤다.이번에는 노드로 구현해보겠다.doubleLinkedList의 구현과 ArrayDeque의 개념을 섞어놓은 느낌이라 전체 코드로 짧게 포스팅하겠다.그리고 배열로 구현하는 것이 아니니 resize 작업이 필요없다.