공통 데이터 구조를 가진 오픈 소스 C 라이브러리가 있습니까? [닫은]


111

연결된 목록, 해시 테이블 등과 같은 일반적인 재사용 가능한 데이터 구조를 가진 C 라이브러리를 찾고 있습니다. Kyle Loudon의 Mastering Algorithms with C (Paperback)와 함께 배포 된 소스와 같은 것 입니다.


다른 사이트는 이러한 종류의 질문에 더 적합합니다. slant.co/improve/topics/19233
ideasman42

답변:


57

BSD queue.h 에는 다음이 있습니다.

  • SLIST = 단일 연결 목록
  • LIST = 이중 연결 목록
  • SIMPLEQ = 단일 연결 대기열
  • TAILQ = 이중 연결 대기열

BSD tree.h 에는 다음이 있습니다.

  • RB-빨강-검정 나무
  • SPLAY-스플레이 트리

자세한 내용은 queue (3)tree (3) 매뉴얼 페이지를 참조하십시오. 나는 그것들이 종속성이없는 순수한 C 매크로이기 때문에 정말 좋아합니다 (libc도 아님). 또한 BSD 라이선스를 사용하면 GPL에 대한 회사 제한에 대해 걱정할 필요가 없습니다.


36

Gnome은 유용한 데이터 구조 및 기타 유틸리티가 많은 Glib 라는 우수한 라이브러리를 제공합니다 .


30

gnu 이식성 라이브러리 인 gnulib

소스 코드로 배포됩니다. 이 목록은 다른 것들의 TON을 포함하는 모듈 목록 에서 가져온 것입니다. 한 가지 흥미로운 점은 "c-stack : 스택 오버플로 처리로 인해 프로그램 종료"입니다.

  • 명부
  • 배열 목록
  • carray-list
  • 연결 목록
  • avltree-list
  • rbtree 목록
  • 연결된 해시 목록
  • avltreehash 목록
  • rbtreehash 목록
  • sublist (다른 목록에서 지원하는 순차 목록 데이터 유형입니다.)
  • oset (추상 순서 세트)
  • 어레이-오셋
  • Avltree-oset
  • rbtree-oset

이 옵션은 GPL 라이센스이므로 GPL 라이센스 소프트웨어에서만 합법적으로 사용할 수 있습니다.
Noah Andrews

19

SGLIB 는 우수한 일반 데이터 구조 라이브러리입니다. 라이브러리는 현재 다음과 같은 일반적인 구현을 제공합니다.
배열 정렬
연결 목록
정렬 연결 목록
이중 연결 목록
빨간색-검정 트리
해시 컨테이너

glib보다 빠르고 빠릅니다. 표준 템플릿 라이브러리에서 영감을 얻었습니다. 여기에서 다운로드

또 다른 해결책은 매력적인 카오스 소프트웨어 입니다. C 매크로 라이브러리 :
kbtree.h : C의 효율적인 B- 트리 라이브러리.
khash.h : C의 빠르고 가벼운 해시 테이블 라이브러리.
kvec.h : C의 간단한 벡터 컨테이너.

Sglib 및 매력적인 카오스 소프트웨어는 C 매크로 라이브러리입니다. C에서 제네릭 컨테이너를 구현하기 위해 void *를 사용하는 것은 비효율적 일 수 있습니다. C 매크로는 C ++ 템플릿을 모방하고 C ++ 템플릿만큼 효율적입니다.


좋은 포인터-SGLIB에 대해 들어 본 적이 없습니다.
Michael Burr

SGLIB 프로젝트의 "다운로드"링크가 끊어졌습니다. ... 없어진 것 같아 : /
luis.espinal

@ luis.espinal 여전히 freecode.com/projects/sglib
Rob

이 두 라이브러리 모두 AWOL이 된 것 같습니다.
Michael Foukarakis




당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.