简单数据结构

!!是markdown文件导入,存在格式问题,可直接看附件文档

数据结构导论

一种电脑存储和组织数据的方式,可以是其更高效。数据结构不光研究数据的操作、操作的实现,还研究分析操作的成本。

谈论数据结构的方式:

1)数学或逻辑模型

抽象数据类型(ADT):只定义要存储的数据,然后定义类型上可进行的操作,不讨论实现细节。

List(列表)—ADT(模型)

1)静态列表(列表中的元素数量不会更改)—Arrays

​ --存储一些给定数量、给定数据类型的元素

​ --根据在列表中的任意位置来读取写入、修改元素

​ --修改任意特定位置的元素

eg:

int A[10];
A[i] = 2;
print A[i];
2)动态列表 —动态数组(效率不高)、链表

​ --若列表中没有元素,会称列表为空、大小为零

​ --可以在任何位置插入、删除元素

​ --可以计算列表中的元素数

动态数组:

int A[MAXSIZE]; //虽是动态,但设有最大“尺寸”
INT end = -1; //设置结尾标识,可以用来判断是否为空,也可计算列表长度
insert(2); //0

​ 当超出所设最大范围时,要创建一个新数组,并复制原数组之前的数据存入新数组,并释放原数组空间,那创建新数组应增加多大呢?且所需创建、复制、移动、释放等操作繁琐,时间成本高。—所以一般新创数组空间为原数组的两倍。

​ (1)访问(access): O(1) (2)插入(insert): O(n)

​ (3)移动(remove): O(n) (4)增加(add): O(n)

------所以引出链表

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值