의 링크 된 목록에있는 동안 C의 링크 된 목록을 연구하는 동안 헤드 노드의 두 가지 구현이 나왔습니다. 다음은 사용 된 구조 인 경우라고 :헤드 노드가 C
헤드 노드는 그것의 실제 데이터가 단지 더미 노드 있지만 다른 노드 (제 실제 노드에 바로 링크이다struct node
{
int data;
struct node *next;
}
은 첫 번째 구현은 이런 데이터)로 :
struct node *head;
head->next = NULL; //head->next would then be linked to the first node.
제 implementaton 머리 노드가 공간을 할당 malloc에 명령을 사용하여 저장되고 그것의 데이터와 상기 제 실제 노드가 하나있다.
내 질문에, 우리는 어떻게 머리 부분에 malloc을 사용하여 할당 된 공간이 없다는 첫 번째 구현에서 "head-> next"를 사용할 수 있습니까? 왜냐하면 내가 아는 한 (틀렸다면 나를 바로 잡기 때문에) 노드의 두 필드는 공간이 해당 노드에 할당 된 후에 만 사용할 수 있기 때문입니다.
struct node *head = malloc(sizeof (struct node));
if (!head) { perror("malloc node"); exit(EXIT_FAILURE); };
head->next = NULL;
// initialize other fields of head
이 head
의 모든 필드를 초기화하는 것을 잊지 마십시오
더 많은 소스 코드보기. 귀하의 질문은 혼란 스럽습니다. 'node.js'와의 관계는 무엇입니까? –