donaricano-btn

자바에서  이중 연결 리스트(DoublyLinkedList) - DoublyLinkedList in java

- 이중 연결 링스트의 장점은 단일 연결 리스트 보다 인덱스를 이용한 검색이 빠르다

-  단일 연결 리스트는 헤더에서 부터 검색을 하지만 이중연결 리스트는 양쪽에서 검색이 가능하다

- 단점은 구조가 복잡하며 메모리 소모가 단일 연결 리스트 보다는 있다

- 자바 콜렉션의 리스트는 이중 연결 리스트이다


1. DoubleLinkedList<E>.class

1) node.class

private class Node<E>{
		
	private E data;
	private Node<E> pre;
	private Node<E> next;
	
	public Node(E data, Node pre, Node next){
		this.data = data;
		this.pre = pre;
		this.next = next;
	}
	
}

- 클래스 안의 중첩 클래스를 사용 하였다(가독성 좋다)

- pre 라는 변수가 추가 되었다(메모리 증가)


2) 정의

 

- size를 선언하여 보다 쉽게 제어가 가능하다


3) addFirst(E element)

 

- 앞에서 부터 요소를 추가 한다


4) addLast(E element)

 

- 뒤에서 부터 요소 추가


5) node(int index)

 

- 인덱스를 이용하여 특정 노드를 찾는다. 이를 이용하여 특정 위치의 삽입/삭제가 가능하다

- 인덱스 값을 2로 나누어 작은 값은 head에서 부터 찾고 큰 값은 tail 에서 부터 찾는다


6) add(int x, E element)

- 원하는 위치에 데이터를 삽입한다

- 가운데 삽입 하기 때문에 앞뒤로 연결을 해야 한다


7. deleteFirst()

- 앞의 데이터를 삭제한다


8. deleteLast()

- 뒤의 데이터를 삭제한다


9. delete(int x)

- 특정 인덱스의 데이터를 삭제한다


10. get(int x)

- 데이터를 가져온다


11. indexOf(E element)

- 요소가 있는지 검사한다

- 있다면 index번호를 반환하고 없으면 -1을 반환한다


12. isNullCheck(), toString()

- 리스트의 값이 있는지 여부와 추가/삭제된 데이터를 확인 할 수 있는 함수


13. size()


14. clear()


14. main()


'etc > study' 카테고리의 다른 글

960 그리드 시스템  (0) 2018.02.19
자바스크립트 클릭이벤트 click()  (0) 2018.02.09
요소 가운데 정렬  (0) 2018.02.02
[Study] 2017-04-09 링크드리스트  (0) 2017.04.09
블로그 이미지

리딩리드

,