개발 공부/자료구조

Linked list

공부하는개발자_ 2024. 3. 6. 17:37

 

RAM(Random architecture Memory)

메모리에도 address가 있고, 각자의 위치에 데이터가 저장됨

각 주소에 접근할 때 걸리는 시간이 동일

메모리를 사용하는 특성이 다르다

 

LinkedList 구조

node : 마디, 교점

vertex: 정점, 꼭지점

연결과 연관되어 있는 개념

구조를 설명하기 위한 표현

 

node 안에 2개의 필드(변수)를 가지고 있다

data field: 저장되는 실제 값

link field:  다음 node가 무엇인가 저장 되어 있음

 

head : 첫번째 노드가 무엇인가를 의미하는 정보를 저장

 

첫번째 위치에 노드 추가

1. 노드를 생성

2. 새로 생성한 노드에 next값으로 현재 이 리스트의 첫번째 노드를 지정

3. 시작이 되는 node가 방금 생성한 node

 

데이터 중간에 추가 

 

array list와 차이 : 배열의 경우 중간에 추가/삭제할 경우 뒤에 있는 모든 엘리먼트들의 자리 이동 필요

=> 느림

linked list의 경우 추가/삭제 될 엘리먼트의 이전, 이후 노드의 참조 값(next)만 변경

=> 빠름 

 

특정한 위치 엘리먼트 삭제

 

 

Linked list : 노드의 크기를 무한대로 늘릴 수 있음. list 크기가 확정적이지 않음

Array list : 데이터 추가할 때 array의 크기를 넘어서면 에러 발생. 큰 배열 안에 3~4가지만 사용하면 메모리 낭비


 

 

 

'개발 공부 > 자료구조' 카테고리의 다른 글

Array List  (0) 2024.03.04
List (배열과 List차이 비교)  (0) 2024.02.29
배열  (0) 2024.02.29