donaricano-btn

2017-04-09 링크드 리스트


1. Javascript


2. Java

- 링크드 리스트는 데이터 추가 삭제시에 효율적이다

- 메모리가 허용되는 한 계속 추가 할 수 있다

1. Node<T>.class


- 위에 있는 data/next의 한 블록을 노드라고 한다

- 링크드 리스트를 구현하기 위해선 노드가 필요하다

- data는 노드의 값이면 next는 다음 노드를 가르키기 위한 주소 값이 들어간다


2. SingleLinkedList<T>.class

1) 변수 정의

 

- head, tail 객체를 선언한다. head와 tail노드의 추가 삭제시의 참고가 된다

- head, tail은 하나의 노드라기 보다는 노드들을 컨트롤 할 수 있는 설명서의 역할

- size는 엘리먼트의 크기를 나타 낸다

2) addLast(T element)

 

- 노드를 뒤에서 추가한다

- 노드가 없을 시에 처음 head와 tail은 모두 처음 추가된 노드를 가르키게 된다

- 이후에 추가된 노드는 tail 값을 참조하여 추가한다

- 처음 추가된 노드얕은 복사(shallow copy) 과정이 일어나서 tail의 next값을 셋팅 하더라도 앞 노드의 다음 주소값을 셋팅 하는 효과가 일어난다


3) addFirst(T element)

 

- head의 값을 참조 하여 앞에 노드를 추가한다

- 처음 노드가 추가 되는 거라면 tail을 새로운 노드로 지정


4) node(int x)

 

- 특정 노드의 위치를 찾는 함수이다

- 이 함수를 이용하여 특정위치 추가/삭제 또는 데이터 가져오기가 가능하다

- head를 시작으로 계속 다음 노드 값을 추적하여 최종 인덱스 의 값을 찾는다


5) add(T element, int x)

 

- 특정 위치에 노드를 삽입한다

- index - 1원하는 위치의 값은 바로 그 뒤의 노드가 알기 때문에 바로뒤의 노드를 이용하여 삽입한다


6) deleteFirst()

 

- 앞의 노드 삭제

- head앞의 노드가 가르키는 값으로 지정한다


7) delete(int T)

 

- 특정 위치의 노드를 삭제한다

- node()를 이용하여 위치를 찾고 사이의 연결 고리를 이어준다


8) deleteLast()

 

- 마지막 노드 삭제


9) toString()

 

- 요소의 상태를 알 수 있도록 화면에 출력한다


10) get()

 

- 요소 값 가져오기


11) main()

 


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

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

리딩리드

,