Golang之ring.Ring的Link操作

时间:2024-04-14 16:40:04

ring.Ring

是一个环链. 其Link操作规则是:

r.Link(s) =>

t = r.Next

r.Next.Prev = s.Prev

s.Prev.Next = r.Next

r.Next = s

s.Prev = r

return t

-------------------------------------

此规则造成:

1. 如果r,s是不同的环链, 则结果是创建一条大环链.

2. 如果r,s是相同的环链, 则删除r,s之间的点形成另一条环链. 并做为结果返回.

如果r,s是前驱,后继关系, 则基本没关系.

表象很多, 但记住规则即可. 万象不离其宗!