字符串和数组

KMP算法
与KMP对应的是BF算法,也就是最朴素的逐一回溯比较法,非专业人士也能想到的一种算法,不做过多赘述。重点放在KMP算法上。
KMP最核心的地方在于next数组的求法
https://www.zhihu.com/question/21923021/answer/281346746
这个回答很好的解释了next数组的求解方式,看完恍然大悟的感觉。
多维数组
其实并不存在多维数组,所谓的多维数组其实是人为划分的一维数组,例如,按照等长度划分一个一维数组,划分的次数就是二维数组的行数,这个长度就是二维数组的列数。除此之外,将等长一维数组的指针存放在一个一维指针数组里,也行成了一个二维数组,如此递推可以构建多维数组。
二维数组的寻址公式(以先列后行为例)
某点的地址=二维数组中的第一个点的地址+中间相隔的元素个数
矩阵的压缩存储
压缩存储的基本思想是:
⑴ 为多个值相同的元素只分配一个存储空间;
⑵ 对零元素不分配存储空间。
对称矩阵只存储下三角部分的元素。
若一维数组的下标从0开始,则k=i*(i-1)/2+j
三角矩阵只存储上三角(或下三角)部分的元素。
对角矩阵 (带状矩阵)压缩存储方法一 :二维数组法
方法二:用一个一维的数组存储对角线上的非零元素,共3n-2个元素
稀疏矩阵可以构建三元组顺序表存储,包括横纵坐标和元素个数
十字链表和广义表
template
class OLNode
{

public:
int row,col;

T element;

OLNode* right,*down;
public:

OLNode(){
right=NULL;
down=NULL;
};
};

这里是引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值