search 알고리즘이 아님.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | void search_song(char* artist, char *title) { Artist *prt_artist = find_artist(artist); if (prt_artist == NULL) { printf("No such artist exists\n"); return; } SNode *ptr_snode = prt_artist->head; while (ptr_snode != NULL && strcmp(ptr_snode->song->title, title) < 0) ptr_snode = ptr_snode->next; // ptr_snode->next if (ptr_snode != NULL && strcmp(ptr_snode->song->title, title) == 0) { printf("Found:\n"); print_song(ptr_snode->song); } else { printf("No such song exists\n"); return; } } | cs |
알파벳 순으로 정렬되어 있다는 가정 하에 최적화를 해 주는 예외처리이다.
while (ptr_snode != NULL && strcmp(ptr_snode->song->title, title) < 0)
알파벳 순이니까 원하는 제목보다 작은 동안에만 순회한다.
if (ptr_snode != NULL && strcmp(ptr_snode->song->title, title) == 0) {
printf("Found:\n");
print_song(ptr_snode->song);
}
다시 한 번 원하는 제목이 맞는지 확인!!
'공부' 카테고리의 다른 글
Deep Learning Cookbook을 따라해보자 (0) | 2019.02.11 |
---|---|
C 언어 - linked list에서 node를 추가할 때 예외처리 (0) | 2019.02.04 |
C 언어 - 파일을 load 할 때 주의할 점 (0) | 2019.02.04 |
C 언어 형 변환(캐스팅)시 주의할 점 (0) | 2019.02.04 |
C 언어 프로젝트 - 하기 전에 주의해야 할 점 (0) | 2019.02.02 |