반응형
c언어 연결 리스트 (Linked lists)
-
array lists 문제점
list 중간에 삽입이나 삭제가 어렵다
- 이를 수행하기 위해서는 공간 확보를 위해서 많은 아이템들이 이동을 해야 한다
-
ex. 중간에 소수 삽입
소수 primes → [ 2, ] → [ 3, ] → [ 7, ] → [ 11, ]
소수 5 삽입 (insertion)
소수 primes → [ 2, ] → [ 3, ] -----------→ [ 7, ] → [ 11, ]
소수 primes → [ 2, ] → [ 3, ] → [ 5, ] → [ 7, ] → [ 11, ]
-
소수 5를 리스트에 삽입하기 위한 절차
1. 3과 7을 가지고 있는 구조체 (structures)를 찾는다.
2. 새로운 구조체를 위한 공간 할당(allocate)
3. 첫번째 필드를 5로 지정
4. 두번째 필드가 7 구조체를 가리키도록 설정
5. 3구조체의 포인터가 새로운 구조체를 가리키도록 설정
-
리스트 항목들이 메모리에 흩어지게 되겠지만, 각 항목이 다음 항목을 가리키도록 지정해 놓았기에 찾을 수 있다.
반응형
'C 언어 > C언어 기초' 카테고리의 다른 글
[C언어 #60] 연결 리스트 (Linked lists) - 스택 (stack) 구현 (0) | 2020.08.19 |
---|---|
[C언어 #59] 연결 리스트 (Linked lists) - 스택 (stack) (0) | 2020.08.18 |
[C언어 #57] 객체 리스트 (Object lists) (0) | 2020.08.12 |
[C언어 #56] 리스트 (list) 확장 (realloc) - 동적 배열 ArrayList 만들기 (0) | 2020.08.01 |
[C언어 #55] 리스트 (list) - 동적배열 (배열 길이 활용) (0) | 2020.07.30 |