티스토리 뷰
연결 리스트는 데이터 구조 중에 하나로,
고정되어있는 배열과 달리 중간중간 비어있는 메모리에 값을 저장하고
바로 옆에 그 다음 값의 메모리 주소(포인터)를 함께 가진다.
메모리를 효율적으로 사용할 수 있지만 메모리를 두 배로 가지게 된다.
배열처럼 연속적으로 저장되진 않지만 다음 값의 메모리 주소만 알면 값을 읽어들일 수 있다.
1이 저장되고 바로 옆에 2를 가리키는 주소를 함께 가진다.
2는 3의 주소를 함께 가진다.
3 다음은 없기 때문에 널 포인터를 가진다.
연결 리스트는 아래와 같은 구조체로 정의할 수 있다.
typedef struct node
{
int number;
struct node *next;
}
node;
node라는 이름의 구조체는 number 와 *next 두 개의 필드를 정의한다.
number는 각 node가 가지는 값,
*next 는 다음 node를 가리키는 포인터를 의미한다.
여기서 typedef struct 대신에 typedef struct node 라고 ‘node’를 함께 명시해 주는 것은,
구조체 안에서 node를 사용하기 위해서다.
'부스트코스 > 6. 자료구조' 카테고리의 다른 글
[CS50] 6.6 연결 리스트: 트리 (0) | 2021.02.20 |
---|---|
[CS50] 6.5 연결 리스트: 장단점 (0) | 2021.02.20 |
[CS50] 6.4 연결 리스트: 코딩 (0) | 2021.02.20 |
[CS50] 6.2 배열의 크기 조정하기 (0) | 2021.02.20 |
[CS50] 6.1 malloc과 포인터 복습 (0) | 2021.02.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- pseudo
- sr-only
- valgrind
- vanillajs
- 비구조화할당
- Typography
- 구조체
- 프로젝트
- intersectionObserver
- 이벤트위임
- 연결리스트
- 선형검색
- overflow
- RenderTree
- capturing
- 구조분해할당
- HTML
- CSSOM
- Dom
- float
- 폼
- 문자열
- malloc
- 동기처리
- 함수
- Big Ω
- 포인터
- form
- CSS
- 선택자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함