Page 376 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 376
한 레코드가 있으므로 GetIndex 함수를 실행하면 프리 리스트에 등록된 레코드를 가져와 새
노드를 저장합니다. 만약 삭제한 레코드가 없어 프리 리스트가 비어 있다면 max의 값을 1만큼
증가하고 배열 꼬리의 아직 사용하지 않은 레코드를 사용합니다.
배열 커서로 연결 리스트 만들기 프로그램
실습 9-6은 배열 커서로 연결 리스트 만들기 프로그램입니다. 실행 결과는 생략합니다. 직접
실행해 보세요.
이 프로그램을 컴파일하려면 Member.h, Member.c, ArrayLinkedList.h, ArrayLinkedList.c가 필요합니다.
실습 9-6 •완성 파일 chap09/ArrayLinkedListTest.c
01 /* 배열 커서로 만든 연결 리스트 프로그램 */
02 #include <stdio.h>
03 #include "Member.h" 실습 11-1에서 작성
04 #include "ArrayLinkedList.h"
05
06 /*--- 메뉴 ---*/
07 typedef enum {
08 TERMINATE, INS_FRONT, INS_REAR, RMV_FRONT, RMV_REAR, PRINT_CRNT,
09 RMV_CRNT, SRCH_NO, SRCH_NAME, PRINT_ALL, CLEAR
10 } Menu;
11
12 /*--- 메뉴 선택 ---*/
13 Menu SelectMenu(void)
14 {
15 int i, ch;
16 char *mstring[] = {
17 "머리에 노드를 삽입", "꼬리에 노드를 삽입", "머리 노드를 삭제",
18 "꼬리 노드를 삭제", "선택한 노드를 출력", "선택한 노드를 삭제",
19 "번호로 검색", "이름으로 검색", "모든 노드를 출력",
20 "모든 노드를 삭제",
21 };
22 do {
23 for(i = TERMINATE; i < CLEAR; i++) {
24 printf("(%2d) %-18.18s ", i + 1, mstring[i]);
25 if((i % 3) == 2)
26 putchar('\n');
27 }
28 printf("(0) 종료 : ");
376 C 알고리즘