Menu



Manage

Study_C > 13-6.c Lines 64 | 1.1 KB
다운로드

                        
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define S_SIZE 50

typedef struct NODE {
	char title[S_SIZE];
	int year;
	struct NODE *link;
} NODE;

int main()
{
	NODE *list= NULL;
	NODE *prev = NULL, *p = NULL, *next = NULL;
	char buffer[S_SIZE];
	int year;

	//연결 리스트에 정보를 입력
	while(1)
	{
		printf("책의 제목을 입력하세요 : (종료하려면 엔터키를 입력하세요) ");
		gets_s(buffer, S_SIZE);
		if (buffer[0] == '\0')
			break;

		p = (NODE *)malloc(sizeof(NODE));
		strcpy(p -> title, buffer);
		printf("책의 출판 연도를 입력하세요 : ");
		gets_s(buffer, S_SIZE);
		year = atoi(buffer);
		p->year = year;

		if (list == NULL)
			list = p;
		else
			prev -> link = p;
		p->link = NULL;
		prev = p;
	}
	printf("\n");
	//연결 리스트에 들어 있는 정보를 모두 출력
	p = list;
	while (p != NULL)
	{
		printf("[%s, %d]->", p->title, p->year);
		p = p->link;
	}

	printf("\n");
	// 동적 할당 반납
	p = list;
	while (p != NULL)
	{
		next = p->link;
		free(p);
		p = next;
	}

	return 0;
}