python培训之链表实现左移和右移

发布时间:2023-01-05 09:34:23 人气:95 作者:多测师

  python链表实现左移和右移

  1、对于链表调用rotate(n)方法来重载左移、右移(相应的内置方法__lshift__和__rshift__)。

  def __lshift__(self, n):

  return self.rotate(n)

  def __rshift__(self, n):

  return self.rotate(-n)

  2、涉及到该操作的链表并没有改变,要更改该值的使用>>=或<=进行赋值。

  也可以直接向代码中添加覆盖原链表的代码。

  def __lshift__(self, n):

  ret = self.rotate(n)

  self.val,self.next = ret.val,ret.next

  return ret

  def __rshift__(self, n):

  ret = self.rotate(-n)

  self.val,self.next = ret.val,ret.next

  return ret

  '''

python培训之链表实现左移和右移

  >>> node = Node.build(1,2,3,4,5)

  >>> node

  Node(1->2->3->4->5->None)

  >>> node >> 1

  Node(5->1->2->3->4->None)

  >>> node >> 2

  Node(3->4->5->1->2->None)

  >>> node >> 3

  Node(5->1->2->3->4->None)

  >>> node

  Node(5->1->2->3->4->None)

  >>> node << 6

  Node(1->2->3->4->5->None)

  >>> node << 1

  Node(2->3->4->5->1->None)

  >>> node << 1

  Node(3->4->5->1->2->None)

  >>> node >> 2

  Node(1->2->3->4->5->None)

  >>> node

  Node(1->2->3->4->5->None)

  >>>

  '''

  以上就是python链表实现左移和右移的方法,希望对大家有所帮助。更多Python学习指路:请关注多测师。https://www.e70w.com/xwzx/




返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线