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()
KathyLJQ
发布了27 篇原创文章 · 获赞 0 · 访问量 417
私信
关注
标签:node,head,.__,cur,python,self,单向,next,链表
来源: https://blog.csdn.net/KathyLJQ/article/details/103975486