본문 바로가기

Algorithm & problem solving

연결리스트 알고리즘

반응형

연결 리스트

자료 구조가 연결은 노드라는 객체들이 다른 노드에 대한 참조를 포함한 형태로 저장된 것을 의미한다.

연결 리스트에서 각 노드는 리스트의 다음 노드에 대한 참조를 포함한다.

연결 구조의 다른예로는 트리와 그래프가 있다.

이때 노드는 둘 이상의 다른 노드에 대한 참조를 포함한다.


public class ListNode {


public Object data;

public ListNode next;


public ListNode() {

this.data = null;

this.next = null;

}

public ListNode(Object data) {

this.data = data;

this.next = null;

}

public ListNode(Object data, ListNode next) {

this.data = data;

this.next = next;

}

public String toString() {

return "ListNode(" + data.toString() + ")";

}

}


설명

ListNode 객체에는 두개의 인스턴스 변수가 있다.

data 변수는 어떤 Object에 대한 참조

next 변수는 리스트에서 다음 노드에 대한 참조

리스트의 마지막 노드에서 관례상 next 변수는 null이다.


각 ListNode 객체는 단일 요소를 가진 리스트로 생각할 수 있지만, 좀 더 일반적으로 리스트는 다수의 노드를 포함할 수 있다.

새로운 리스트를 만드는 몇가지 방법으로

ListNode node1 = new ListNode(1);

ListNode node2 = new ListNode(2);

ListNode node3 = new ListNode(3);


연결방법은

node1.next = node2;

node2.next = node3;

node3.next = null;


 생성과 동시에

ListNode node0 = new ListNode(0, node1);


마지막 노드에서는 next 필드가 null이다.

반응형

'Algorithm & problem solving' 카테고리의 다른 글

MyLinearMap와 해싱  (0) 2018.08.17
Map 인터페이스와 MyLinearMap 구현  (0) 2018.08.13
선택정렬 알고리즘  (0) 2018.07.03
컴퓨터 알고리즘  (0) 2018.05.18