C 알고리즘은 이름에서 알 수 있듯이 C99에서 구현 된 공통 데이터 구조 및 알고리즘의 모음입니다.
때때로 나는 공통 데이터 구조와 알고리즘에 대한 최소한 기본적인 이해가 필요한 기술 인터뷰를 준비하고 있습니다. 이러한 질문은 후보자의 기술적 배경과 그녀의 발을 생각할 수있는 능력을 평가해야합니다. 그러나 실제로는 휠을 다시 발명하지 않고 C ++의 Boost와 같은 잘 확립 된 피어 검토 라이브러리를 사용해야합니다.
라이브러리의 첫 번째 버전은 헤더로만 구현되었습니다.
라이브러리를 헤더 전용 형식으로 배송하는 것과 API 및 구현에 별도의 파일을 사용하는 것 사이에는 트레이드 오프가 있습니다. 큰 프로젝트를 구축 할 때는 그다지 효율적이지는 않지만 헤더 전용 접근 방식은 큰 이점이 있습니다. 라이브러리를 별도로 컴파일 할 필요가 없으며 소스 코드에서 관련 헤더 파일 만 #include 하면됩니다.
그러나 결국 API 및 구현에 별도의 .h 및 .c 파일을 사용하기 위해 정착했습니다. 코드 구조 측면에서 더 직관적이라고 생각하기 때문입니다.
Googletest (Gtest) 프레임 워크를 사용했습니다. 이것은 저장소를 많이 부풀어 오르고이 작은 프로젝트의 과잉 일 수 있지만 그럼에도 불구하고 시도해보고 싶었습니다. 테스트를 실행하려면 단순히 make test 실행합니다.
이것은 교육 및 실험 코드입니다. 말할 것도없이, 모든 생산 환경에서 이와 같은 임의의 장난감 알고리즘 구현을 사용하지 마십시오.
@lekkas