programing

표준 c 라이브러리는 링크드 리스트 등의 데이터 구조를 제공하고 있습니까?

firstcheck 2022. 8. 3. 21:15
반응형

표준 c 라이브러리는 링크드 리스트 등의 데이터 구조를 제공하고 있습니까?

표준 C 라이브러리 구현, 특히 glibc(GNU C 라이브러리)는 링크 목록, 스택 등 데이터 구조를 제공합니까?아니면 직접 롤링을 해야 합니까?

고마워요.

C 표준은 링크드 리스트 및 스택과 같은 데이터 구조를 제공하지 않습니다.일부 컴파일러 구현에서는 자체 버전을 제공할 수 있지만 다른 컴파일러에서는 사용할 수 없습니다.

그래서 네, 직접 쓰셔야 돼요.

C 표준에서는 그렇지 않지만 glibc에서는 목록, 테일 큐 및 순환 큐가 제공됩니다.<sys/queue.h>큐맨 페이지에 따르면 POSIX가 아닌 BSD에서 온 것입니다.

glibc에는 해시 테이블, 바이너리 트리, 바이너리 검색 등이 있습니다.이것들은 C89, C99 및/또는 POSIX.1 규격의 일부입니다.링크 리스트가 존재하지 않는 이유가 있습니다.

man 페이지에서 상세 정보 :hsearch, tsearch, bsearch

주의: 일부 제품은 디자인이 좋지 않습니다.예를 들어 다음과 같습니다.hsearch그럼 프로세스당 해시 테이블이1개만 허용됩니다.GNU 컴파일러 gcc/glibc는 여러 해시 테이블을 허용하는 재입력 버전, 및 를 제공합니다.「스택 오버플로우」의 「사용법」도 참조해 주세요.

따라서 C는 데이터 구조를 제공하지 않지만 Gnome에서 제공하는 glib를 사용할 수 있습니다.

Queue.h ad Tree.h 에는 몇 가지 데이터 구조도 준비되어 있습니다.

POSIX(및 GLibc)에는 해시 테이블이 구현되어 있습니다.hcreate/hdestroy/hsearch의 manpage를 참조해 주세요.

그러나 앞서 언급했듯이 glib를 사용하는 것이 기본 데이터 구조를 다시 구현하는 것을 피하는 가장 쉬운 방법일 수 있습니다.

다른 답변에서도 언급했듯이 표준 라이브러리에는 링크 목록 라이브러리가 없습니다.

아까는 제가 쓰려고 쓴 적이 있어요.자유롭게 사용하실 수도 있고, 코드를 참고용으로 사용하실 수도 있습니다.

liblist에서 찾을 수 있습니다.

언급URL : https://stackoverflow.com/questions/14001652/does-standard-c-library-provides-linked-list-etc-data-structures

반응형