Directorio de artículos
- Prefacio
- 1. Utilice Python para implementar operaciones básicas de listas vinculadas.
-
- 1. La definición de nodos se implementa mediante clases:
- 1. La definición de lista enlazada se implementa mediante clases:
- 3. Determine si se trata de una implementación de función vacía:
- 4. Implementación de la función de longitud de la lista vinculada:
- 5. Implementación de la función transversal de lista vinculada:
- 6. Implementación de la función de interpolación de cabezales:
- 7. Implementación de la función de interpolación de cola:
- 8. Inserte la implementación de la función de valor en la posición especificada en la lista vinculada:
- 9. Eliminar una implementación de función de cierto valor:
- 10 Compruebe si existe una implementación de función en un nodo:
Prefacio
Cómo usar Python para implementar las operaciones básicas de listas vinculadas, incluida la definición de nodos, la definición de listas vinculadas, encontrar la longitud de la lista vinculada, si la lista vinculada está vacía y una serie de funciones
提示:以下是本篇文章正文内容,下面案例可供参考
1. Utilice Python para implementar operaciones básicas de listas vinculadas.
Los nodos de la lista vinculada deben contener un valor y una dirección que apunte al siguiente elemento.
1. La definición de nodos se implementa mediante clases:
class Node():
def __init__(self,elem):
self.elem = elem
self.next = None
Dado que todo en Python es un objeto, las variables son en realidad referencias a objetos, lo que equivale a guardar la dirección del objeto.
1. La definición de lista enlazada se implementa mediante clases:
La definición de lista enlazada es la siguiente, que también se implementa mediante clases:
class Single_LinkList():
def __init__(self,node = None):
self.head = node
Se generará automáticamente una lista enlazada vacía durante la inicialización, con el encabezado apuntando a Ninguno.
3. Determine si se trata de una implementación de función vacía:
def is_empty(self):
"""链表是否为空"""
if self.head == None:
return True
else:
return False
4. Implementación de la función de longitud de la lista vinculada:
def length(self):
"""链表长度"""
len = 0
cur = self.head
while cur != None:
len = len + 1
cur = cur.next
return len
5. Implementación de la función transversal de lista vinculada:
def travel(self):
"""遍历链表"""
cur = self.head
while cur != None:
print(cur.elem)
cur = cur.next
6. Implementación de la función de interpolación de cabezales:
def add(self,item):
"""链表头部进行添加元素"""
node = Node(item)
node.next = self.head
self.head = node
7. Implementación de la función de interpolación de cola:
def append(self,item):
"""链表尾部进行添加元素"""
node = Node(item)
cur = self.head
if self.is_empty():
self.head = node
else:
while cur.next != None:
cur = cur.next
cur.next = node
node.next = None
8. Inserte la implementación de la función de valor en la posición especificada en la lista vinculada:
def insert(self,pos,item):
"""
在指定位置上添加元素
:param pos: 从0开始
:param item:
:return:
"""
node = Node(item)
count = 0
cur = self.head
while cur != None:
if count == pos - 1:
node.next = cur.next
cur.next = node
break
cur = cur.next
count = count + 1
9. Eliminar una implementación de función de cierto valor:
def remove(self,item):
"""删除某一个节点"""
cur = self.head
count = 0
if self.is_empty():
print("删除失败")
elif self.head.elem == item:
self.head = self.head.next
else:
while cur.next != None:
if cur.next.elem == item:
cur.next = cur.next.next
break
cur = cur.next
10 Compruebe si existe una implementación de función en un nodo:
def search(self,item):
"""查看某个节点是否存在"""
cur = self.head
while cur != None:
if cur.elem == item:
return True
cur = cur.next
return False
El código completo es el siguiente:
class Node():
def __init__(self,elem):
self.elem = elem
self.next = None
class Single_LinkList():
def __init__(self,node = None):
self.head = node
def is_empty(self):
"""链表是否为空"""
if self.head == None:
return True
else:
return False
def length(self):
"""链表长度"""
len = 0
cur = self.head
while cur != None:
len = len + 1
cur = cur.next
return len
def travel(self):
"""遍历链表"""
cur = self.head
while cur != None:
print(cur.elem)
cur = cur.next
def add(self,item):
"""链表头部进行添加元素"""
node = Node(item)
node.next = self.head
self.head = node
def append(self,item):
"""链表尾部进行添加元素"""
node = Node(item)
cur = self.head
if self.is_empty():
self.head = node
else:
while cur.next != None:
cur = cur.next
cur.next = node
node.next = None
def insert(self,pos,item):
"""
在指定位置上添加元素
:param pos: 从0开始
:param item:
:return:
"""
node = Node(item)
count = 0
cur = self.head
while cur != None:
if count == pos - 1:
node.next = cur.next
cur.next = node
break
cur = cur.next
count = count + 1
def remove(self,item):
"""删除某一个节点"""
cur = self.head
count = 0
if self.is_empty():
print("删除失败")
elif self.head.elem == item:
self.head = self.head.next
else:
while cur.next != None:
if cur.next.elem == item:
cur.next = cur.next.next
break
cur = cur.next
def search(self,item):
"""查看某个节点是否存在"""
cur = self.head
while cur != None:
if cur.elem == item:
return True
cur = cur.next
return False
El código de prueba es el siguiente:
if __name__ == "__main__":
Linklist = Single_LinkList()
print(Linklist.is_empty())
print(Linklist.length())
print(Linklist.append(1))
print(Linklist.is_empty())
print(Linklist.length())
print(Linklist.append(2))
print(Linklist.append(3))
print(Linklist.append(4))
print(Linklist.append(5))
Linklist.add(8)
Linklist.insert(1,10)
Linklist.remove(8)
# Linklist.remove(8)
Linklist.travel()
print(Linklist.search(1))
El resultado es el siguiente: