연결 리스트 (linked list)

Post on 30-Dec-2015

104 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

연결 리스트 (Linked List). What is Linked List? 각 항목의 데이터 와 그 인접항목의 포인터 를 갖고 있는 리스트. 연결 리스트 (Linked List). 동적할당을 사용하기 때문에 메모리 사용에있어 효율이 높다 . 같은 양의 데이터를 저장 할 경우 배열보다 메모리를 많이 사용한다 . 포인터를 사용하기 때문에 엑세스 시간이 느리다 직렬인 배열과 달리 자료구조를 여러 형태로 구현 할수 있다. 연결 리스트 (Linked List). 배열 구조 : 삽입 / 삭제가 비효율적 - PowerPoint PPT Presentation

TRANSCRIPT

연결 리스트연결 리스트 (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

top related