1.抽象数据类型和数据结构
抽象数据类型(Abstract Data Type)由数据模型以及定义在该模型上的一组操作所组成。它是一种抽象定义,只需要定义外部的逻辑特性、操作和语义,而不需要考虑具体的存储方式及效率(时间、空间复杂度)。
而数据结构(Data Structure)则是基于某种特定的编程语言,使之实现ADT的整套算法。它涉及到具体的内部算法的实现,并且有不同效率及存储机制的多种实现方式。
2.向量的介绍
所谓的向量,实际就是高级编程语言中数组这种数据组织形式的一种推广和泛化。
数组是一段连续的内存空间,它被均匀地分成了许多个元素。其中每个元素都有一个编号,并且该元素可以通过它所对应的编号被直接访问。这样每个元素的地址都可以通过线性方程来确定,因此也被称为线性序列。
向量是数组的抽象与泛化,由一组元素按照线性次序封装而成。其中的每个元素都与向量的秩(Rank)一一对应,元素的类型不再局限于基本数据类型,并且元素的操作、管理和维护都可以通过统一的接口来完成,使其更加的简化、统一和安全。由于向量已经做了很好的封装,所以它可以参与一些更为复杂的数据结构的定制和实现(例如栈和队列)。
3.向量的接口
一个基础的向量至少有这些接口:
操作 | 功能 | 适用对象 |
size() | 报告向量当前的规模(元素总数) | 向量 |
get(r) | 获取秩为r的元素 | 向量 |
put(r, e) | 用e替换掉秩为r的元素 | 向量 |
insert(r, e)< |