Как получить вторые данные в связанном списке? - PullRequest
0 голосов
/ 15 января 2019

Я попытался прочитать из текстового файла два значения: 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())
...