标准c库是否提供链表等数据结构?

rsj*_*ani 48 c gcc glibc data-structures

标准C库实现,特别是glibc(GNU C库)提供链表,堆栈等.数据结构,还是我们必须自己滚动?

谢谢.

iab*_*der 22

但是,C标准没有,glibc <sys/queue.h>根据来自BSD而不是POSIX 的队列手册页提供列表,尾部队列和循环队列.


SKi*_*SKi 20

glibc中有哈希表,二叉树和二进制搜索.这些是C89,C99和/或POSIX.1标准的一部分.有些原因链表不存在.

来自man pages的更多信息:hsearch,tsearchbsearch

注意:其中一些设计不好.例如:hsearch每个进程只允许一个哈希表.在GNU编译器gcc/glibc的,提供可重入版本hcreate_r,hsearch_rhdestroy_r允许多个哈希表.另请参阅Stack Overflow的使用方法hcreate_r.


Alo*_*ave 19

C标准不提供链表和堆栈等数据结构.一些编译器实现可能提供自己的版本,但它们的使用在不同的编译器中是不可移植的.

是的,你必须自己写.

  • 当然,如果您不关心可移植性,只需参考目标编译器文档,找到它提供的合适的数据结构并使用它们。 (2认同)

Rah*_*thi 5

因此,C不提供数据结构,但您可以使用Gnome提供的glib

Queue.h广告Tree.h还为您提供了一些数据结构