C/C++ 언어 malloc()을 포함한 사용자 정의 함수 galloc()을 이용하여 링크드 리스트를 생성하는 프로그램
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | /* malloc()을 포함한 사용자 정의 함수 galloc()을 이용하여 ** 링크드 리스트를 생성하는 프로그램*/ #include <stdio.h> #include <stdlib.h> #include <string.h> struct list { char name[20]; char sex; struct list *next; }; typedef struct list LIST; LIST *head; LIST *galloc(void); void readAndMakeLinkedList(void); void printLinkedList(void); void main(void) { readAndMakeLinkedList(); printLinkedList(); } void readAndMakeLinkedList(void) { /* 입력 데이터를 읽고 이를 링크트 리스트로 연결하는 함수 */ LIST *ptr1, *ptr2 ; head = galloc(); printf("입력 데이터의 이름과 성별(M or F)을 차례로 입력\n"); printf("입력을 끝내시려면 ##을 입력하세요.\n"); scanf("%s %c", head->name, &head->sex); ptr1 = head; while (1) { ptr2 = galloc(); fflush(stdin); scanf("%s", ptr2->name); if (strcmp(ptr2->name, "##") ==0) break; else scanf(" %c", &ptr2->sex); ptr1->next = ptr2; ptr1 = ptr2; } ptr1->next = NULL; } void printLinkedList() { /* 링크트 리스트를 따라가면서 출력하는 함수 */ LIST *ptr; ptr = head; printf ("Head -> "); while ( ptr->next != NULL ) { printf("%s %c -> ", ptr->name, ptr->sex); ptr = ptr->next; } printf("%s %c -> ", ptr->name, ptr->sex); printf("NULL\n"); } LIST *galloc(void) { return((LIST *) malloc(sizeof(LIST))); } | cs |
C/C++ 언어 malloc()을 포함한 사용자 정의 함수 galloc()을 이용하여 링크드 리스트를 생성하는 프로그램
'C,C++ > 예제' 카테고리의 다른 글
| C/C++ 언어 패딩을 이용한 입력 정수의 최상위 비트와 최하위 비트의 값을 구하는 예제 프로그램 (0) | 2016.06.10 |
|---|---|
| C/C++ 언어 union(공용체)를 이용한 예제 프로그램 (0) | 2016.06.10 |
| C/C++ 언어 getchar() 와 putchar() 사용하여 소문자를 대문자로 바꾸는 예제 프로그램 (0) | 2016.06.08 |
| C/C++ 언어 getch() 함수를 사용한 예제프로그램 (0) | 2016.06.08 |
| C/C++ 언어 kbhit() 함수를 사용한 예제프로그램 (0) | 2016.06.08 |