lista linkate e alberi

m
matteo basile (340 points)
1 8 13
asked Jan 16, 2021 in Programmare in Python by matteo basile (340 points)
salve ragazzi premetto che sono un neofita della programmazione e sto cercando di esercitarmi sulla attrversamento di alberi e liste linkate .....non capisco perchè quando chiamo la funzione nro_nodi(Lista)  mi da errore: AttributeError: 'str' object has no attribute 'val'..... grazie in anticipo  per le risposte

def main():
    g=Lista()
    l= Lista("w","e")
    print(l)
    #print(g)
    print(is_vuota(l))
    #print(is_vuota(g))
    print(nro_nodi(l))
    #print(nro_nodi(g))
    

class Lista():
    def __init__(self, val = None, next = None):
        self.val = val
        self.next = next

    def __repr__(self):
        return f"valore: {self.val}, prossimo: {self.next}"
        
###funzioni di utilità
def is_vuota(Lista):
    "ritorna True se la lista e vuota e False altrimenti"
    return Lista.val == None
         
def nro_nodi(Lista):
    "conta il numero di nodi"
    if is_vuota(Lista):
         return 0
    return 1 + nro_nodi(Lista.next)

if __name__ == "__main__":
    main()
133 views

1 Answer

andrea.sterbini (168150 points)
488 897 1728
answered Jan 16, 2021 by andrea.sterbini (168,150 points)

Non dovete condividere codice.

BTW, nell'istruzione

l= Lista("w","e")

il secondo argomento è una str e non una Lista

m
matteo basile (340 points)
1 8 13
commented Jan 16, 2021 by matteo basile (340 points)
edited Jan 16, 2021 by matteo basile
scusi prof . ma ho messo del codice perchè non essendo inerente a hw o esercizi su q2a credevo non creasse problemi...scusi ancora.

adesso ho provato costruendo le liste lincate tra loro esempio:

l1=Lista(1,l2)

l2=Lista(2,l3)

l3=Lista(3)

ma il problema sussiste : 'NoneType' object has no attribute 'val'

non riesco ad uscirne fuori....
andrea.sterbini (168150 points)
488 897 1728
commented Jan 16, 2021 by andrea.sterbini (168,150 points)
non controlli che Lista sia None