Skip to content

2012年 408 数据结构 第 42 题

数据结构2012年综合题12分

题目 ​

假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间。例如,"loading" 和 "being" 的存储映像如下所示:

singly-linked-list
list str1: l, o, a, d
list str2: b, e
shared: i, n, g
pointer p: shared:0

设 str1 和 str2 分别指向两个单词所在单链表的头结点,链表结点结构为 data | next,请设计一个时间上尽可能高效的算法,找出由 str1 和 str2 所指向两个链表共同后缀的起始位置(如上图中字符 i 所在结点的位置 p)。要求:

(1) 给出算法的基本设计思想。

(2) 根据设计思想,采用 C 或 C++ 或 Java 语言描述算法,关键之处给出注释。

(3) 说明你所设计算法的时间复杂度。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数