经典数据结构-块状链表详解
1、 概述
在进行算法设计时,我们常用的两种线性数据结构是数组和链表。它们各有优缺点。数组特点是元素在内存中紧挨着存储,因而优点是定位快(O(1)),缺点是插入删除慢(O(n));而链表则不同,它通过指针将不同位置的元素链接起来,因而优缺点与数组正好相反:定位慢(O(n)),插入删除快(O(1))。本文介绍一种新的数据结构:块状链表,它将数组和链表的优点结合来,各种操作的时间复杂度均为O(sqrt(n))。
2、 块状链表的基本操作
块状链表整合了数组和链表的优缺点,使得各种那个操作的时间复杂度均为O(sqrt(n))。 从整体上看,块状链表是一个链表, 而在链表的每个节点上,以数组的形式存储一组元素。具体如下: