python单向循环链表_python 单向循环链表

class Node(object):

def __init__(self,elem):

self.elem=elem

self.next=None

class SingleLinkCircle(object):

def __init__(self,node=None):

self.__head=node

def is_empty(self):

return self.__head is None

def length(self):

if self.is_empty():

return 0

else:

cur=self.__head

count=1

while cur.next!=self.__head:

cur=cur.next

count+=1

return count

def add(self,item):

node=Node(item)

if self.__head==None:

self.__head=node

node.next=node

else:

node.next=self.__head

self.head=node

def append(self,item):

node=Node(item)

if self.__head==None:

self.__head=node

node.next=node

else:

cur=self.__head

while cur.next!=self.__head:

cur=cur.next

cur.next=node

node.next=self.__head

def travel(self):

if self.is_empty():

print("empty")

else:

cur=self.__head

while cur.next!=self.__head:

print(cur.elem,end=" ")

cur=cur.next

print(cur.elem)

def insert(self,pos,item):

node=Node(item)

if pos<=0:

self.add(node)

elif pos>=self.length():

self.append(node)

else:

cur=self.__head

count=0

while count

cur=cur.next

count+=1

node.next=cur.next

cur.next=node

def remove(self,item):

if self.is__empty():

print("empty")

return

else:

cur=self.__head

pre=cur

while cur.next!=self.__head:

if cur.elem==item:

pre.next=cur.next

return

pre=cur

cur=cur.next

if cur.elem==item:

pre.next=self.__head

return

print("no such element")

return

s=SingleLinkCircle()

s.add("s")

s.append("t")

s.insert(1,"a")

s.append("x")

print(s.length())

s.travel()

5983bf81c236c115779289d0d9041349.png

d1358d4695d8660de2972cc1f6e682b2.png

KathyLJQ

发布了27 篇原创文章 · 获赞 0 · 访问量 417

私信

关注

标签:node,head,.__,cur,python,self,单向,next,链表

来源: https://blog.csdn.net/KathyLJQ/article/details/103975486

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值