抽象数据类型?

抽象数据类型?

C语言对抽象数据类型(ADT)支持很一般,不如C++

所谓抽象数据类型的特点之一是无视数据本身类型,这在没有模板的C语言中想实现对某种特定数据类型的支持还不算麻烦,麻烦的是处理多种数据类型。

常见的有实用价值的ADT有

数组或者叫向量(array或者vector)、链表(list)、LIFO的栈(stack)、FIFO的队列和双端队列(queue)、堆(优先队列,heap或者叫priority queue)、并查集(Union/Find)、散列或者叫哈希表(hashmap)、集合(set、multiset)、映射(map、multimap)、二叉树(包括huffman树、红黑树、平衡树等等)、B+树、图及其变种(有向无环图、生成树)等等