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