数据结构学习笔记——自组织链表
链表相较于线性表的优势是,在插入和删除指定元素时,链表的效率O(1)高于线性表O(n)。
然而在需要高频访问的场景中,链表的效率就显得很低。为了弥补链表访问效率较低的缺点,可使用自组织的方法加以弥补。
自组织链表,即在使用过程中,能自发地使其中元素位置发生适应性改变的链表。
可用于组织链表的四种常用方法
(1)前移法
在找到需要的元素之后,就把它放到链表的开头。
设想应用场景:对表内少数元素多次重复访问
(2)换位法
在找到需要的元素之后,只要该元素不在链表开头,就将该元素与其前驱元素调换位置。
设想应用场景:暂无
(3)计数法
增加数据域来记录每个元素的被访问次数,每次访问元素后按访问次数重新排列该元素的位置。
设想应用场景:输入法的候选词根据输入频率调整位置
(4)排序法
根据元素的自身属性,对链表进行排序。
设想应用场景:生词本按照字典序排列