반응형
츄르사려고 코딩하는 코집사입니다.
1. 링크드리스트(LinkedList)
- 데이터와 포인터를 가진 노드가 한 줄로 연결되어 있는 방식의 자료구조
- 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 앞 노드와 뒤에 있는 노드를 연결
- 메모리의 동적할당을 기반으로 구현된 리스트
- 자료구조의 크기를 동적으로 조정할 수 있어서 메모리의 효율적인 사용이 가능
- 중간 부분에 데이터를 추가 및 삭제를 하더라도 뒤로 밀리거나 앞으로 당겨지는 일이 없어서 ArrayList에 비해 데이터의 추가 및 삭제가 용이함
- 하지만, 탐색을 할 경우에는 ArrayList보다 속도가 느림.
2. 링크드리스트(LinkedList)의 노드(Node)
- 링크드리스트(LinkedList)에서의 구성요소는 노드(Node)가 있다. 노드는 링크드리스트(LinkedList)에서 필요한 데이터를 가지고 있는 단위를 말한다.
- 링크 필드에 null을 가지고 있는 노드가 마지막 노드이다.
1) 데이터 필드
- 데이터 값을 저장하는 필드
2) 링크 필드
- 다음 노드의 주소를 저장하는 필드
3) 헤드(Head)
- 링크드리스트(LinkedList)에서 맨 처음 노드를 가리키는 레퍼런스
3. 링크드리스트(LinkedList) 구현
1) 링크드리스트(LinkedList) 선언
- 링크드리스트(LinkedList) 선언은 아래와 같이 import를 해줘야 합니다.
- import java.util.LinkedList;
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
//int형 링크드리스트 선언
LinkedList<Integer> List = new LinkedList<>();
}
}
2) 링크드리스트(LinkedList) 추가
- add(A) : A 추가
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
//int형 링크드리스트 선언
LinkedList<Integer> List = new LinkedList<>();
List.add(1); // 링크드리스트에 1 추가
List.add(1, 10); // 링크드리스트에 1번째 인덱스 뒤에 10 추가
List.addFirst(2); // 링크드리스트 노드 맨 앞에 2추가
List.addLast(3); // 링크드리스트 맨 뒤 노드에 3 추가
// 1
// 1 10
// 2 1 10
// 2 1 10 3
//2 1 10 3 출력
for(int i : List) System.out.println(i);
}
}
3) 링크드리스트(LinkedList) 삭제
- remove()는 맨 앞의 노드를 삭제
- remove(index) : index 값의 위치 노드 삭제
- removeFirst() : 맨 앞의 노드를 삭제
- removeLast() : 맨 뒤의 노드를 삭제
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
//int형 링크드리스트 선언
LinkedList<Integer> List = new LinkedList<>();
List.add(1); // 링크드리스트에 1 추가
List.add(1, 10); // 링크드리스트에 1번째 인덱스 뒤에 10 추가
List.addFirst(2); // 링크드리스트 노드 맨 앞에 2추가
List.addLast(3); // 링크드리스트 맨 뒤 노드에 3 추가
List.remove(); //링크드리스트 맨 앞 노드 삭제
List.remove(1); //링크드리스트 1번째 인덱스 노드 삭제
List.removeFirst(); //링크드리스트 맨 앞 노드 삭제
List.removeLast(); //링크드리스트 맨 뒤 노드 삭제
// 아무것도 출력되지 않음
for(int i : List) System.out.println(i);
}
}
반응형
'Language > Java' 카테고리의 다른 글
자바(Java) No projects are found to import 해결 방법 (0) | 2021.02.22 |
---|---|
자바(Java) for문을 이용한 기본 순열(Permutation) (0) | 2021.02.15 |
자바(Java) CompareTo 메소드 (0) | 2021.02.15 |
자바(Java) the method sort(int ) in the type arrays is not applicable for the arguments 문제 해결 방법 (0) | 2021.02.11 |
자바(Java) 순열(Permutation)과 조합(Combination) (0) | 2021.02.07 |
자바(Java)에서의 재귀함수(Recursive Function) 예제 (0) | 2021.02.07 |
자바(Java)에서의 입출력 처리 (0) | 2021.02.07 |
자바(Java) 스택(Stack) 클래스 및 예제 (0) | 2021.02.07 |
최근댓글