반응형
c언어 연결 리스트 (Linked lists) - 스택 (stack)
Stack Operation | |
스택 작업 | 간편하고 효율적인 연결 리스트 활용 방식 |
push | 리스트 시작점에 항목 삽입 |
pop | 시작점의 항목 제거 |
top (peek) | 첫번째 항목 보기 |
isEmpty | 항목 유무 확인 |
ex. 중간에 숫자 삽입
numbers → [ 2, ] → [ 3, ] → [ 7, ] → [ 11, ]
int 5 삽입 (insertion)
numbers → [ 2, ] → [ 3, ] -----------→ [ 7, ] → [ 11, ]
numbers → [ 2, ] → [ 3, ] → [ 5, ] → [ 7, ] → [ 11, ]
숫자 5를 리스트에 삽입하기 위한 절차
1. 3과 7을 가지고 있는 구조체 (structures)를 찾는다.
2. 새로운 구조체를 위한 공간 할당(allocate)
3. 첫번째 필드를 5로 지정
4. 두번째 필드가 7 구조체를 가리키도록 설정
5. 3구조체의 포인터가 새로운 구조체를 가리키도록 설정
리스트 항목들이 메모리에 흩어지게 되겠지만, 각 항목이 다음 항목을 가리키도록 지정해 놓았기에 찾을 수 있다.
반응형
'C 언어 > C언어 기초' 카테고리의 다른 글
[C언어 #61] 연결 리스트 (Linked lists) - 스택 (stack) 구현 - 내림차순 정렬/삽입 (0) | 2020.08.24 |
---|---|
[C언어 #60] 연결 리스트 (Linked lists) - 스택 (stack) 구현 (0) | 2020.08.19 |
[C언어 #58] 연결 리스트 (Linked lists) - item을 arraylist에 추가 (0) | 2020.08.18 |
[C언어 #57] 객체 리스트 (Object lists) (0) | 2020.08.12 |
[C언어 #56] 리스트 (list) 확장 (realloc) - 동적 배열 ArrayList 만들기 (0) | 2020.08.01 |