연결 리스트 (linked list)
DESCRIPTION
연결 리스트 (Linked List). What is Linked List? 각 항목의 데이터 와 그 인접항목의 포인터 를 갖고 있는 리스트. 연결 리스트 (Linked List). 동적할당을 사용하기 때문에 메모리 사용에있어 효율이 높다 . 같은 양의 데이터를 저장 할 경우 배열보다 메모리를 많이 사용한다 . 포인터를 사용하기 때문에 엑세스 시간이 느리다 직렬인 배열과 달리 자료구조를 여러 형태로 구현 할수 있다. 연결 리스트 (Linked List). 배열 구조 : 삽입 / 삭제가 비효율적 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/1.jpg)
연결 리스트연결 리스트 (Linked List)(Linked List)
What is Linked List?
각 항목의 데이터와 그 인접항목의 포인터를 갖고 있는 리스트
![Page 2: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/2.jpg)
연결 리스트연결 리스트 (Linked List)(Linked List)
동적할당을 사용하기 때문에 메모리 사용에있어
효율이 높다 .
같 은 양 의 데 이 터 를 저 장 할 경 우 배 열 보 다
메모리를 많이 사용한다 .
포인터를 사용하기 때문에 엑세스 시간이 느리다
직렬인 배열과 달리 자료구조를 여러 형태로 구현
할수 있다 .
![Page 3: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/3.jpg)
• 배열 구조 : 삽입 /삭제가 비효율적 • 리스트 구조 : 포인터 개념을 이용하여 삽입 /
삭제 연산을 효율적으로 수행 • 리스트의 구성 : data field & link • data field : 실제 자료가 저장 • link field : 다음 노드에 대한 포인터가 저장
data
link
data
link
data
link
data
link
연결 리스트연결 리스트 (Linked List)(Linked List)
![Page 4: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/4.jpg)
배열 배열 & & 연결 리스트연결 리스트• 3,4 삽입
1
2
5
6
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
1
2
5
6
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
1
2
3
4
5
6
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
• Int a[7]
![Page 5: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/5.jpg)
1
4
2
3 추가1
4
2
3
1
4
2
3
배열 배열 & & 연결 리스트연결 리스트
![Page 6: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/6.jpg)
포인터포인터 (Pointer)(Pointer)
주소를 저장하기위한 공간
• 선언 : 객체형 * 변수명 ;• 예제 : int * ptr; int a;• 선언시 “ * 변수명” 의 의미 => 주소저장공간
• 객체사용• & : 주소연산자• * : 역참조 ( 간접지시 ) 연산자• 예제
• ptr = &a;• ptr = a;• *ptr = a;
![Page 7: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/7.jpg)
포인터포인터 (Pointer)(Pointer)
int *a1;
int a2 =
10;
a1 = &a2
*a1 = a2;
1000 a1
1002 a2
1002
10
1000 a1
1002 a2
![Page 8: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/8.jpg)
포인터포인터 (Pointer)(Pointer)
포인터 사용시 주의할 점
• 포인터는 항상 어떤 대상을 가리키고 있어야 함
• 어떤 대상도 가리키고 있지 않는 포인터는 항상
NULL 로 초기화
![Page 9: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/9.jpg)
단순연결 리스트단순연결 리스트 (Singly Linked List)(Singly Linked List)
• 노드들은 순차적 위치에
존재하지 않는다• 노드들의 위치는 실행시마다
바뀔수 있다
bat cat sat vat \nptr
bat
vat
cat
sat
![Page 10: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/10.jpg)
bat cat sat vat \nptr
단순연결 리스트단순연결 리스트 (Singly Linked List)(Singly Linked List)
연결 리스트 구성을 위한 기능
• 노드의 구조 정의 : struct
• 노드 생성 방법 : new
• 노드 삭제 방법 : delete
![Page 11: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/11.jpg)
bat cat
단순연결 리스트단순연결 리스트 (Singly Linked List)(Singly Linked List)
생성
new 연산자
bat cat
연결
![Page 12: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/12.jpg)
검색
단순연결 리스트단순연결 리스트 (Singly Linked List)(Singly Linked List)
bat cat sat vat \n
ptr 이동
![Page 13: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/13.jpg)
삽입
단순연결 리스트단순연결 리스트 (Singly Linked List)(Singly Linked List)
bat cat sat vat \nptr
vat
12
![Page 14: 연결 리스트 (Linked List)](https://reader033.vdocuments.net/reader033/viewer/2022061612/56812a50550346895d8d95c4/html5/thumbnails/14.jpg)
단순연결 리스트단순연결 리스트 (Singly Linked List)(Singly Linked List)
삭제
bat cat sat vat \nptr
1
delete2