내년에 올라가기전에 자료구조 보는중인데

보니까 연결리스트로 스택 큐 이거저거 다하더라고

그래서 자료구조중에서 제일 핵심인거 같은데 맞음?


그리고 이거는 그냥 단순히 노드안에 있는 원소만 출력하는 함수인데

void allprint(node* target) {
node* cur = target;

while (cur->next != NULL) {
cur = cur->next;
printf("%d , \n", cur->data);
}
}

새노드 생성은 연결시켜야 하니까 다음노드 저장시킬 위에나온 cur같은 임시변수 생성시킬 필요가 있는건 알겠는데 문제는

어차피 포인터로 얕은복사 쓰니까 임시변수에다가 헤드값 저장 안시키고 그냥 헤드의 링크값 자체를 증가시켜도 될꺼같은데

왜 임시변수 선언하고 거기다가 헤드노드값 넣고 순회시키는 거임?


cur = head; cur = cur->next;

head = head->next;

둘 다 그게 그거 아닌가?


얕은복사 때문에 임시 변수 쓴다고 해도 일단 주소 값 다음값으로 넘겨버리면

함수 스코프 벗어나서 임시변수 사라진다고 해도 헤드는 헤드노드 원점으로 돌아오는것도 아니고

임시변수로 증가시킨 노드위치에 있을텐데 이게 이해가 안감