오늘 배울것은 연결리스트와 이중연결리스트에요
첫번째로 이것을 알아야하는 이유를 배워봅시다
우리가 어떤 데이터를 사용할때 그 데이터의 용량을 몰라요
그렇기 때문에 무작정 배열로 할당하려면 막연하기도하고
생성하더라도 쓸데없이 클수도있고 사용하는 영역이 변동이 생길수있어요
따라서 동적으로 원하는만큼만 자동적으로 할당해주는 연결리스트가 필요해요
이제 개념적인 설명을 해봅시다
어떤 데이터를 가르키는 포인터를 하나 만들어서 구조화 해봅시다
그 데이터를 가르키는 주소는 1개만 할당하고
주소의 사용은 1번밖에 못하기 때문에 끝납니다
그림으로 설명해보겠습니다
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ+ㅡㅡㅡㅡㅡㅡㅡ
head -> (주소1 ) l (주소2 )
데이터1 l 데이터2
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ+ㅡㅡㅡㅡㅡㅡㅡ
그렇기때문에 우리는 주소를 가르킬 포인터를 하나 더 만들거에요
struct node{
int num;
node* next;
}
이렇게 다음 주소를 가르킬 포인터를 만들었어요
자 그렇다면 그 구조를 그림으로 표현해봅시다
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
head -> (주소1 ) next2 -> (NULL)
데이터1 데이터2
Next1 -> (주소2 )
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
이렇게 연결이 완료 됐어요 이런식으로 끝을 판별할수있게 끝의 next에는 항상 null을 가르키게 만들어야돼요
이런식으로 동적 할당해주면 리스트와 스택 큐를 구현할수있어요
다음강의는 이중연결리스트 입니다
담배한대씩 피고오세요
드르렁
어렵다 쉽게 설명해라
역시 내 제자다워
선생님께서는 단일연결리스트의 마무리가 아쉬운데 혹시 독자 알아서 짜라고 기회의장을 열어두신건가요 - dc App
그냥 rdb 써 시발
초딩수준인데