Java Programming

연결 리스트 (Linked List)

mynameisjh 2022. 3. 27. 16:31

단일 연결 리스트

- 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조

*자료 구조 : 메모리에 로딩되는 데이터의 구조

언어 차원에서 지원해주는 자료 구조면 쉽게 구현할 수 있지만 프로그래머가 직접 만들어야하는 자료 구조이므로 난이도가 높다.

- 리스트의 등장 배경 : 배열의 크기는 입력되는 정보의 MAX값이다.

- 1~3개가 들어오지만 가끔 한 번씩 30이 들어온다고 배열의 크기를 30으로 하면 평소에도 30으로 크기를 유지해야한다.

, 데이터의 최대 개수를 메모리로 잡아야 하므로 최대 개수가 들어오지 않는 기간이 더 많은 경우 리소스의 낭비가 된다.

 

- 배열에 데이터가 들어온 상황에서 데이터가 사라졌을 때 다른 데이터가 들어오면 뒤에 있던 데이터의 우선순위가 바뀌게 된다. 즉 지속적으로 배열을 재배치 해야 한다.

1. 크기 문제 : 늘었다 줄었다 유연하게 크기를 조절 할 수 있다.

2. 데이터의 추가 삭제 : 비즈니스 로직에 따른 데이터의 추가 삭제가 유연해야 한다.

- 리스트는 데이터의 크기가 고정적이지 않거나 데이터의 추가, 삭제가 빈번할 때 사용하기 위해 만들어졌다.

컴퓨터의 바로가기도 리스트 구조이다. 컴퓨터에서는 매우 많은 리스트를 사용한다.

리스트의 종류

단일연결 리스트 : 링크 정보가 하나만 있다. NodeLink정도가 하나만 있다. - 포인팅을 하나만 할 수 있다.

다음 데이터가 무엇인지만 알려줄 수 있다.

이중연결 리스트 : 노드에 링크정보가 두 개가 있으므로 데이터를 앞, 뒤로 볼 수 있다.

Head = 시작점.

Student Object의 참조값이 아닌 Node의 참조값을 해야 다음 Node로 갈 수 있다.

 

메인함수에서 헤드 만들고 노드 만들어주고, 링크 걸어서, 거기 있는 숫자 찍어주기 > 우리가 함

이 메인에서 한 것을 콘테이너에서 하면 된다.

제일 먼저 생성자, getter, setter를 만들어야 한다.

 

 

'Java Programming' 카테고리의 다른 글

클래스 (Class)  (0) 2022.03.27
참조형 (Reference)  (0) 2022.03.27
메소드 (Method)  (0) 2022.03.27