复习数据结构——线性表

线性表实现:

数组方式:随机访问很快,常数级别。但是增删慢了,n级别。预先要知道线性表的大小

链表方式:随机访问不急,n级别。但是增删快,常数级别。就是C++的new delete操作性能不怎样,可以用Free list来维护增删的节点。对于new delete操作有5倍左右提升吧。

基于 数组 指针
构造 固定大小 灵活无拘束
扩展性 不能增大 容易
浪费 如果小量数据(大大小于构造大小),浪费空间 储存指针。如果节点数据小,空间利用率就很低了
增删 n 1
随机访问 1 n

一般来说,元素个数多,数组实现比较省位置;个数少,链表省位置些。不知大小,size变化很大的时候,一般用链表;预知到数据未来增长到什么地步,用数组。

一般来说,增删频繁的操作比较多,所以用到基于指针的链表可能比较多。

设计关键:头空;curr在分割之前

代码:暑假补上自己写的int作为元素的版本,尽量自己写。


线性结构——Stack(栈)

特性:IFO,last in first out, 先进先出

设计关键:

数据 a b c 3 h e l  top = 7
数组索引 0 1 2 3 4 5 6 7 

链表实现,top元素在head之后。

代码:暑假补上自己写的int作为元素的版本,尽量自己写。


线性结构——Queue(队列)

特性:FIFO,first in first out, 先进先出

设计关键:数组版本要留一个空位辨别是空,还是满。

代码:暑假补上自己写的int作为元素的版本,尽量自己写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值