연결리스트 에러좀 봐주세요 ㅠ
나빛
질문 제목 :
연결리스트 에러좀 봐주세요 ㅠ
연결리스트를 짰는데 리스트 출력이 되질 않습니다.
질문 내용 :
#include stdio.h
#include stdlib.h
#include string.h
typedef struct student
{
int age;
int number;
struct Node * next;
}Node;
typedef struct {
Node * head;
}Node_h;
Node * head;
Node_h * create(void){
Node_h * L;
L = (Node_h*)malloc(sizeof(Node_h));
L-head = NULL;
return L;
}
Node * make_node()
{
Node * node;
node = (Node *)malloc(sizeof(Node));
node-next = NULL;
return node;
}
void link_at_the_end_of_thelist(Node *new_node)
{
if (head == NULL)
head = new_node;
else
{
Node * ptr = head;
while (ptr -next != NULL)
{
ptr = ptr-next;// 에러남(4IntelliSense: Node * 형식의 값을 Node * 형식의 엔터티에 할당할 수 없습니다.)
}
ptr-next = new_node;
}
}
void appending_node ( int age, int number)
{
Node *p;
p = make_node();
p-age = age;
p-number = number;
link_at_the_end_of_thelist( p);
}
void printlist(Node_h * L)
{
Node * ptr;
ptr = L-head;
while(ptr!=NULL)
{
printf(나이 : %d\n넘버 : %d\n, ptr-age, ptr-number);
ptr = ptr-next;
if(ptr!= NULL)
{
printf(,);
}
}
}
void main()
{
Node_h *c;
c = create();
appending_node(3, 11);
appending_node(2, 15);
appending_node(3, 20);
appending_node(5, 17);
appending_node(3, 30);
printlist(c);
}
책에는 appending_node랑 link_at_the_end_of_thelist 두 함수를 합쳐서 풀이해놨는데
저희 교수님은 저렇게 따로 함수를 짜셨더라고요. 그대로 해야할거 같아서 나눠서 하는데 저부분에서 자꾸 에러가 나는지 출력이 안되네요 ㅠ
그리고
typedef struct {
Node * head;
}Node_h;
이거 정확한 역활이 뭔가요?
typedef struct student
{
int age;
int number;
struct Node * next;
}Node;
이거랑 다른건 알겠는데 그냥 전역함수로 Node head; 하는것과 구지 저렇게 Node_h 구조체를 만들 필요성이 있나요?
전역하고 다시하려니까 머리 터질꺼 같네요 ㅠㅠ 꼭좀 알려주세요