[MOOC笔记]第二章 向量(数据结构)

本文介绍了抽象数据类型(ADT)和数据结构的概念,重点讲解了向量这一数据结构,它是数组的推广和泛化。向量提供了一组元素的线性次序封装,支持寻秩访问、插入和删除操作。讨论了向量的扩容策略,包括递增式和加倍式扩容,分析了它们的时间成本。
摘要由CSDN通过智能技术生成

1.抽象数据类型和数据结构

抽象数据类型(Abstract Data Type)由数据模型以及定义在该模型上的一组操作所组成。它是一种抽象定义,只需要定义外部的逻辑特性、操作和语义,而不需要考虑具体的存储方式及效率(时间、空间复杂度)。

而数据结构(Data Structure)则是基于某种特定的编程语言,使之实现ADT的整套算法。它涉及到具体的内部算法的实现,并且有不同效率及存储机制的多种实现方式。


2.向量的介绍

所谓的向量,实际就是高级编程语言中数组这种数据组织形式的一种推广和泛化。

数组是一段连续的内存空间,它被均匀地分成了许多个元素。其中每个元素都有一个编号,并且该元素可以通过它所对应的编号被直接访问。这样每个元素的地址都可以通过线性方程来确定,因此也被称为线性序列。

向量是数组的抽象与泛化,由一组元素按照线性次序封装而成。其中的每个元素都与向量的秩(Rank)一一对应,元素的类型不再局限于基本数据类型,并且元素的操作、管理和维护都可以通过统一的接口来完成,使其更加的简化、统一和安全。由于向量已经做了很好的封装,所以它可以参与一些更为复杂的数据结构的定制和实现(例如栈和队列)。


3.向量的接口

一个基础的向量至少有这些接口:

操作 功能 适用对象
size() 报告向量当前的规模(元素总数) 向量
get(r) 获取秩为r的元素 向量
put(r, e) 用e替换掉秩为r的元素 向量
insert(r, e)<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值