Golang之ring.Ring的Link操作

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是前驱,后继关系, 则基本没关系.

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

posted @ 2016-09-07 13:17  HEZOF  阅读(321)  评论(0编辑  收藏  举报