数据结构 -- 动态数组

本文探讨了线性表的定义,包括抽象数据类型和存储结构。重点介绍了动态数组(Deque)作为线性表的顺序存储结构,强调其支持随机访问的高效性以及动态调整容量的灵活性。同时,分析了动态数组的缺点,如扩容时的效率问题和头部插入删除的高时间复杂度,适合于元素变化不大且侧重存取操作的场景。
摘要由CSDN通过智能技术生成

线性表定义

0个或多个数据元素的有限序列
理解:相同类型的元素之间是有顺序的,第一个元素只有一个后继结点,没有前驱结点,最后一个元素只有一个前驱结点,没有后继结点,其他元素各有一个前驱结点和后继结点

抽象数据类型

ADT 线性表(List)
Data
	数据元素之间满足线性表的定义
Operation
	InitList(*L)            // 初始化操作,建立一个空的线性表
	ListEmpty(L)            // 若线性表为空,返回true,否则返回false
  ListLength(L)           // 返回线性表L的元素个数
	ClearList(*L)           // 将线性表清空
	GetElem(L, i, *e)       // 将线性表L中的第i个元素值返回给e
	LocateElem(L, e)        // 在线性表L中查找与给定值e相等的元素,如果成功,返回该元素在表中的序号,否则返回0
	ListInsert(*L, i ,e)    // 在线性表L中第i个位置插入新元素e
	ListDelete(*L, i, e)    // 删除线性表L中第i个位置元素,并用e返回其值
endADT

存储结构

从存储结构上分,线性表的实现可以分成两种:

  • 顺序存储结构:数组
  • 链式存储结构:单链表、双向链表、循环链表

动态数组(Deque)

C/C++中只提供的静态数组(不考虑STL),静态数组的优点是随机访问

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值