domingo, 18 de mayo de 2014

TP4

Les voy dejando la guía del Trabajo Práctico 4. Tiene dos adjuntos: listaClaveValor.py y autos.py. Como estoy teniendo problemas técnicos con los adjuntos, a continuación les pego el código de ambos archivos:


ListaClaveValor.py

class listaClaveValor:
    def __init__(self, clave=None, valor=None):
        self.__clave = clave
        self.__valor = valor
        self.__siguiente = None
    def buscarClave(self, c):
        e = self
        while e!=None and e.__clave!=c:
            e = e.__siguiente
        return e
    def buscarValor(self, v):
        e = self
        while e!=None and e.__valor!=v:
            e = e.__siguiente
        return e
    def insertar(self, c, v):
        e = self
        while e!=None and e.__clave!=c:
            ea = e
            e = e.__siguiente
        if e:
            e.__valor = v
            return e
        if ea.__clave == None:
            ea.__clave = c
            ea.__valor = v
            return ea
        e = listaClaveValor(c,v)
        ea.__siguiente = e
        return e
    def longitud(self):
        e = self
        n = 0
        while e!=None:
            n = n + 1
            e = e.__siguiente
        return n
    def valor(self):
        return self.__valor
    def clave(self):
        return self.__clave
    def siguiente(self):
        return self.__siguiente
    def __str__(self):
        e = self
        s = '['
        if self.__clave == None:
            return '[]'
        while e!=None:
            s = s + str(e.__clave) + ','
            e = e.__siguiente
        return s[:-1] + ']'



autos.py


from dispersion import *

class auto:
    def __init__(self, patente, marca, fabricacion, propietario):
        self._patente = patente
        self._marca = marca
        self._fabricacion = fabricacion
        self._propietario = propietario
    def marca(self):
        return self._marca
    def propietario(self):
        return self._propietario
    def fabricacion(self):
        return self._fabricacion

def hashPatente(p):
    b = 13
    h = 0
    for i in range(0,6):
        h = h + b**i * ord(p[i])
    return h

mapa = hashTableXXX(h=11, hash=hashPatente)
pa1 = 'ADF565'
pa2 = 'RUY276'
pa3 = 'ETI127'
pa4 = 'AE5328'
pa5 = 'BRY070'
pa6 = 'WER808'
pa7 = 'WGJ756'
pa8 = 'YEW423'
pa9 = 'VFU112'
a1 = auto(pa1, 'Toyota', 1990, 'Juan')
a2 = auto(pa2, 'Volkswagen', 1993, 'Antonio')
a3 = auto(pa3, 'Fiat', 1997, 'Adriana')
a4 = auto(pa4, 'Toyota', 2001, 'Lucia')
a5 = auto(pa5, 'Peugeot', 2003, 'Maria')
a6 = auto(pa6, 'Fiat', 2006, 'Jose')
a7 = auto(pa7, 'Toyota', 2007, 'Mariano')
a8 = auto(pa8, 'Volkswagen', 2008, 'Hernan')
a9 = auto(pa9, 'Peugeot', 2009, 'Pedro')
mapa.insertar(pa1, a1)
print "insertando", pa1, mapa.estado(), "carga:", mapa.factorCarga()
mapa.insertar(pa2, a2)
print "insertando", pa2, mapa.estado(), "carga:", mapa.factorCarga()
mapa.insertar(pa3, a3)
print "insertando", pa3, mapa.estado(), "carga:", mapa.factorCarga()
mapa.insertar(pa4, a4)
print "insertando", pa4, mapa.estado(), "carga:", mapa.factorCarga()
mapa.insertar(pa5, a5)
print "insertando", pa5, mapa.estado(), "carga:", mapa.factorCarga()
mapa.insertar(pa6, a6)
print "insertando", pa6, mapa.estado(), "carga:", mapa.factorCarga()
mapa.insertar(pa7, a7)
print "insertando", pa7, mapa.estado(), "carga:", mapa.factorCarga()
mapa.insertar(pa8, a8)
print "insertando", pa8, mapa.estado(), "carga:", mapa.factorCarga()
mapa.insertar(pa9, a9)
print "insertando", pa9, mapa.estado(), "carga:", mapa.factorCarga()

print "buscando..."
for p in [pa1,pa2,pa3,pa4,pa5,pa6,pa7,pa8,pa9]:
    a = mapa.buscar(p)
    print p,a.marca(),a.propietario()

No hay comentarios.:

Publicar un comentario