2008年OI集训论文上有介绍<对块状链表的一点研究>,其主要是结合了链表和数组各自的优点,链表中的节点指向每个数据块,即数组,并且记录数据的个数,然后分块查找和差入。在g++头文件中,<ext/rope>中有成型的块状链表,在using namespace __gnu_cxx;空间中,其操作十分方便。
基本操作:
rope list;
list.insert(sta,string);
list.erase(sta,end);
list.copy(sta,len,string);
算法复杂度n*(n^0.5),可以在很短的时间内实现快速的插入、删除和查找字符串的效果,简直就是一个神器!