我尝试从文本文件中读取两个值:130,220
(以逗号分隔)。但是,我创建了一个节点链接列表,这些节点具有dato1
和dato2
属性,我想在其中保存这些值。
当我从阅读器类中打印obtenerNodos
方法时,仅打印重复的第一个值(130)。
[130, 130]
如何为obtenerNodos
和dato1
编辑dato2
方法?
我希望:[130,220]
已正确存储在链接列表中。
下面是节点和链表的代码。
节点类
class Nodo:
def __init__(self, dato1 = None, dato2 = None, siguienteNodo = None):
self.dato1 = dato1
self.dato2 = dato2
self.siguienteNodo = siguienteNodo
链接列表类别
class ListaEnlazada:
def __init__(self):
self.nodoInicio = Nodo()
self.nodoUltimo = Nodo()
def tamano(self):
actual = self.nodoInicio
total = 0
while actual.siguienteNodo != None:
total += 1
actual = actual.siguienteNodo
return total
def agregarNodoFinal(self, dato1, dato2):
nodoNuevo = Nodo(dato1, dato2)
actual = self.nodoInicio
while actual.siguienteNodo is not None:
actual = actual.siguienteNodo
actual.siguienteNodo = nodoNuevo
def obtenerNodos(self):
datos = []
nodo = self.nodoInicio
while nodo.siguienteNodo is not None:
nodo = nodo.siguienteNodo
datos.append(nodo.dato1)
return datos
def vacia(self):
if self.nodoInicio == None:
return True
else:
return False
阅读器类(我不确定阅读器是否运行正常)
class LecturaArchivo:
listaEnlazada = ListaEnlazada()
nombreArchivo = input('Nombre del archivo: ')
archivo = open(nombreArchivo, "r")
lineas = archivo.read()
datos = lineas.split(',')
for dato in datos:
xTemporal = float(datos[0])
yTemporal = float(datos[1])
listaEnlazada.agregarNodoFinal((xTemporal), (yTemporal))
print(listaEnlazada.obtenerNodos())