如何获取链表中的第二个数据?

2024-04-19 14:50:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从文本文件中读取两个值:130,220(用逗号分隔)。但是,我已经创建了一个节点的链接列表,这些节点具有dato1dato2属性,我希望在这些属性中保存这些值。你知道吗

当我从reader类打印obtenerNodos方法时,只打印第一个重复的值(130)。你知道吗

[130, 130]

如何为dato1dato2编辑obtenerNodos方法?你知道吗

我希望:[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())

Tags: selfnonereturn节点def链表actualdatos