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

标准的C库实现,特别是glibc (GNU C库)提供链表,stack等。 数据结构,还是我们必须推出自己的?

谢谢。

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

所以是的,你必须自己写。

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

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

手册页更多信息: hsearch , tsearch和bsearch

注:其中一些devise不好。 例如: hsearch每个进程只允许一个哈希表。 GNU编译器gcc / glibc提供允许多个散列表的可重入版本hcreate_rhsearch_rhdestroy_r 。 另请参阅堆栈溢出的如何使用hcreate_r

因为这样的C不提供数据结构,但是你可以使用Gnome提供的glib

Queue.h ad Tree.h也提供了一些数据结构

正如已经说过的其他答案,标准库中没有链接列表库。

我刚才写了一个供自己使用的。 您可以自由使用它或使用代码作为参考。

你可以在这里find: libllist

在POSIX(和GLibc)中有一个哈希表实现。 请参阅hcreate / hdestroy / hsearch的联机帮助页。

但是,正如所提到的,使用glib可能是最简单的方法来保存自己的重新实现基本的数据结构。