//단일 링크드 리스트
#include<stdio.h>
#include<malloc.h>
#include<string.h>
typedef struct tagData
{
int data;
struct tagData *next;//포인터부분
}Data;
void main()
{
Data *pdata;
Data *head, *tail;
pdata=(Data*)malloc(sizeof(Data));
pdata->next=NULL;
pdata->data=20;
head=tail=pdata;
pdata=(Data*)malloc(sizeof(Data));
pdata->next=NULL;
pdata->data=30;
tail->next=pdata;
tail=pdata;
pdata=(Data*)malloc(sizeof(Data));
pdata->next=NULL;
pdata->data=3;
tail->next=pdata;
while(head)
{
printf("%d",head->data);
head=head->next;
}
}
이렇게 했을시에 while문에서 30203 을 출력하고 끝나는데요
첫번째 헤드에서 next의 값이 어떻게 tail의 주소로 이어지는 건가요?
head=tail=pdata;
이부분에서 head의 next는 NULL로 들어가서 헤드만 찍고 끝나야하지않나요?
학원에서 배웠는데 이해가 안가서 질문드립니다.ㅠㅠ