#include <stdio.h>

#include <stdlib.h>


typedef struct Linknode{

int data;

struct Linknode *link;

}Linknode;


void add_first(Linknode *head, int data);

void print_list(Linknode *head);


int main() {


Linknode *head = (Linknode *)malloc(sizeof(Linknode));

head->data = 1;

head->link = NULL;


add_first(head, 0);

print_list(head);

return 0;

}


void add_first(Linknode *head, int data) {


Linknode *ptr = (Linknode *)malloc(sizeof(Linknode));

ptr->data = data;

ptr->link = head;

head = ptr;

}


void print_list(Linknode *head) {


Linknode *ptr = NULL;

ptr = head;

while (ptr != NULL) {


printf("%d ", ptr->data);

ptr = ptr->link;

}

}

 

일단 알고싶은 부분만 구현한 코드임


연결리스트인데 맨 앞에 노드 추가하는 add_first가 작동이 안됨

내가 이해하기로는 

1. 새로운 노드 ptr에 데이터 받기

2. ptr->link 가 head의 것을 가리키도록 하기

3. head가 ptr을 가리키도록 하기

이건데 내가 뭐 놓친게 있는지 컴파일 해보면 원하는 출력은 0 1 인데 1 만 뜨는 상태임

나머지는 구현이 되던데 이것만 왜인지 안됨...

깃갤 족고수님들 믿습니다