class Node:
def __init__(self,value=None,next=None):
self.value = value
self.next = next
class Linkedlist:
def __init__(self):
self.head = Node()
self.size = 0
def add_first(self,value):
node = Node(value,None)
node.next = self.head.next
self.head.next = node
self.size += 1
def add_last(self,value):
new_node = Node(value)
node = self.head
while node.next != None:
node = node.next
new_node.next = node.next
node.next = new_node
self.size +=1
def remove_first(self):
removeitem = self.head.next.value
self.head.next = self.head.next.next
self.size -=1
def remove_last(self):
node = self.head
while node.next.next != None:
node = node.next
node.next = node.next.next
self.size -= 1
def insert_at(self,value,index):
if index < 0 and index > self.size:
raise ValueError('index越界')
new_node = Node(value,None)
node = self.head
for i in range(index-1):
node = node.next
new_node.next = node.next
node.next = new_node
self.size +=1
def remove_at(self,index):
if index < 0 and index > self.size:
raise ValueError('index越界')
node = self.head
for i in range(index-1):
node = node.next
node.next = node.next.next
self.size -= 1
def print_list(self):
node = self.head
while node.next != None:
node = node.next
print(node.value,end=' ')
print()
def lenght(self):
return self.size
链表的基本操作
最新推荐文章于 2022-08-29 14:49:54 发布