# a = [lambda x,i=i:x*i for i in range(3)]
# a = []
# for i in range(3):
# def func(x,i=i):
# return x*i
# a.append(func)
# print(a[0](2))
# print(a[1](2))
# print(a[2](2))
# 判空,长度,遍历,从头部添加,从尾部添加,从指定位置添加,删除,查找
class Node(object):
def __init__(self, item):
self.item = item
self.next = None
class Siglelist(object):
def __init__(self):
self.head = None
def is_empty(self):
return self.head == None
def add(self, item):
node = Node(item)
node.next = self.head
self.head = node
def length(self):
count = 0
cur = self.head
while cur != None:
count += 1
cur = cur.next
return count
def travel(self):
cur = self.head
while cur != None:
print(cur.item, end=' ')
cur = cur.next
print()
def append(self, item):
node = Node(item)
if self.is_empty():
self.head = node
else:
cur = self.head
while cur.next != None:
cur = cur.next
cur.next = node
def insert(self, pos, item):
if pos <= 0:
self.add(item)
elif pos >= self.length():
self.append(item)
else:
node = Node(item)
cur = self.head
count = 0
while count < pos - 1:
cur = cur.next
count += 1
node.next = cur.next
cur.next = node
def remove(self, item):
pre = None
cur = self.head
while cur.item != item:
pre = cur
cur = cur.next
pre.next = cur.next
def search(self, item):
cur = self.head
while cur.next != None:
if cur.item == item:
print(True)
break
cur = cur.next
else:
print(False)
sigle = Siglelist()
print(sigle.is_empty())
sigle.add(1)
sigle.add(2)
sigle.add(3)
# print(sigle.is_empty())
# sigle.travel()
# sigle.length()
sigle.append(4)
sigle.travel() # 3 2 1 4
sigle.insert(2, 5)
sigle.travel()
sigle.remove(4)
sigle.travel()
sigle.search(5)
链表
最新推荐文章于 2023-01-01 14:24:44 发布