class Node(object):
def __init__(self, item):
self.item = item
self.next = None
class SingLink(object):
def __init__(self, node=None):
self.__head = node
def length(self):
count = 0
cur_node = self.__head
while cur_node != None:
count += 1
cur_node = cur_node.next
return count
def traverse(self):
cur_node = self.__head
while cur_node:
print(cur_node.item, end=',')
cur_node = cur_node.next
print('')
def append(self, ele):
if ele is None:
return None
node = Node(ele)
if self.__head == None:
self.__head = node
return node
cur_node = self.__head
while cur_node.next != None:
cur_node = cur_node.next
cur_node.next = node
return node
def add(self, ele):
node = Node(ele)
if self.__head:
node.next = self.__head
self.__head = node
else:
self.__head = node
def insert(self, index, ele):
count = 1
cur = self.__head
node = Node(ele)
if index == 0:
self.add(ele)
return
if index == 1:
node.next = self.__head.next
self.__head.next = node
return
if index < self.length():
while True:
cur = cur.next
count += 1
if count == index:
node.next = cur.next
cur.next = node
else:
self.append(ele)
def delete(self, ele):
cur = self.__head
if cur.item == ele:
self.__head= cur.next
while cur:
if cur.next:
if cur.next.item == ele:
cur.next = cur.next.next
break
cur = cur.next
else:
return
s = SingLink()
s.append('A')
s.append('B')
s.append('C')
s.traverse()
s.insert(0, 'D')
print(s.length())
s.traverse()
s.insert(10, 'F')
s.traverse()
s.delete("D")
s.delete("F")
s.delete("F")
s.traverse()
网友评论