数据结构

数据结构
线性结构
其特点是数据元素之间存在一对一的线性关系,线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构,常见有:数组,队列.链表和栈
非线性结构
非线性结构一般包括:二维数组,多维数组,广义表,树结构,图结构
稀疏数组

1)稀疏数组格式:第一行,有三列,分别存储,原始数组的行,列,以及有效数值,第二行开始,存取第几行,第几列,数值是什么,依次类推.

二维数组转稀疏数组的思路
1)遍历原始的二维数组,得到有效数的个数,sum
2)根据sum创建稀疏数组,第一行的前面两个值是固定的parseArr[sum+1][3] ,这里为什么要+1,因为第一行已经被赋值了,他有多少个有效值,我们就要创建多少行,因为每一个有效值都对应着该值的行和列
稀疏数组转为二维数组的思路
1)先读取稀疏数组的第一行的第一列和第二列,分别给将要还原的二维源数组赋值,为它的行和列
2)读取稀疏数组的后面几行,将读取到的数据付给源数组

队列

1)队列是一个有序列表,可以用数组和链表来实现,遵循先入先出的原则,即:先存入的队列数据先取出,后存入后取出

数组模拟队列
1)rear(后面的)指向队列尾部(就是队列的最后一个位置),通常当我们加入数据的时候,它的值就会➕1
2)front(前面的),当我们删除一个数据时,它就减一,maxSize(最大容量),它指向队列的前一个位置
3)rear=.=front表示数据为空,rear==maxsize-1表示队列满
在这里插入图片描述

4)rear和front的值默认负一,实现案列,请通过以上模拟实现一个队列.

思路
因为队列的输出,输入分别从前后端来处理,因此需要两个变量front 及rear分别记录队列前后端的下标,front会随着数据输出而改变,而rear则是随着数据输入而改变.maxSize-1最大下标,rear==maxSize-1表示已满
问题分析并优化
1)目前数组使用一次就不能用,没有达到复用的效果
2)将这个数组使用算法,改进成一个环形队列 取模:%
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值