经典的抽象数据类型包括:链表、堆栈、队列和树,这些数据结果在编程中的应用是非常广泛的,需要一项一项的学精学透。
所有的抽象数据类型都必须先确定一件事情,那就是如何获取内存来存储值。有三种可选方案:
静态数组:缺点——静态数组要求结构的长度固定,而且这个长度必须在编译时确定。优点——简单不容易出错
动态数组:缺点——增加了复杂性。优点——运行时才决定数组的长度,如果需要可以分配一个新的、更大的数组,把原来数组的元素复制到新数组中,然后删除原先的数组,从而达到动态改变数组长度的目的。
动态分配的链式结构: 缺点——链式结构的链接字段需要消耗一定内存,在链式结构中访问特定元素的效率不如数组。优点——提供最大的灵活性,每个元素在需要时才单独进行分配。
链表和数组是其他数据结构的基础。