사실 연결리스트는 이전에
https://velog.io/@honeyricecake/%EC%97%B0%EA%B2%B0%EB%A6%AC%EC%8A%A4%ED%8A%B8
이렇게 공부한 적이 있어서 처음부터 끝까지 다 정리하기보다는
몇가지 얻은 것을 정리해보았다.
1.head == NULL, tail == NULL, cur == NULL로 정의함으로서 현재 데이터가 저장되어있는가 아닌가 등의 정보를 얻을 수 있다.
예를 들어
/*** 노드의 추가과정 ***/
newNode = (Node*)malloc(sizeof(Node));
newNode->data = readData;
newNode->next = NULL;
if(head == NULL)
{
head = newNode;
tail = newNode;
}
else
{
newNode->next = head;
head = newNode;
}
이 코드에서도 헤드에 저장이 되어있나 없나에 따라 수행되는 코드가 다른데 이를 헤드가 NULL이냐 아니냐로 구분한다.
위의 코드 및 연결리스트의 삭제 과정을 그림으로 표현한 것이다.
코드의 과정을 이해하는데 보통 글을 썼는데 그림이 더 직관적임이 확실히 와닿았다.
배운 걸 가지고 이후 진도를 나가며 더욱 많은 것을 얻어갈 수 있기를 바라는 바이다.