typedef struct _node {
int data;
struct _node * next;//다음껄로 이어지는 주소값을 _node안에 저장하겠다.
} Node; //이를 편하게 Node라고 저장하겠다.
int NodeCall() {
Node * head = NULL;
Node * tail = NULL;
Node * cur = NULL;
Node * newNode = NULL;
int readData;
while (1) {
printf("자연수 입력");
scanf_s("%d", &readData);
if (readData < 1)
break;
newNode = (Node*)malloc(sizeof(Node));//Node만큼의 메모리값을 할당
newNode->data = readData;
newNode->next = NULL;
if (head = NULL) {
head = newNode;
printf("여기까지 ok");
}
else
tail->next = newNode;
tail = newNode;//꼬리부분을 재정의 해주는것이다.
}
printf("\n");
printf("입력 받은 데이터 전체 출력\n");
if (head == NULL) {
printf("공백상태");
}
else {
cur = head;
printf("%d", cur->data);
while (cur->next != NULL){//NULL이 아니라면 계속해서 반복
cur = cur->next;
printf("%d", cur->data);
}
}
printf("\n\n");
if (head == NULL)
return 0l;
else {
Node * delNode = head;
Node * delNextNode = head->next;
printf("%d를 삭제합니다\n", head->data);
free(delNode);
while (delNextNode != NULL) {//while 문은 조건식이 TRUE일 경우 계속 반복한다.
delNode = delNextNode;
delNextNode = delNextNode->next;
printf("%d를 삭제합니다\n", delNode->data);
free(delNode);
}
}
return 0;
}
int main() {
NodeCall();
return 0;
}
c언어 자료구조에서 기본이되는 Node구조입니다.
참고 부탁드리겠습니다.