Solucion Examen Est Dat Final

4
ESCUELA SUPERIOR POLITECNICA DEL LITORAL FACULTAD DE INGENIERIA EN ELECTRICIDAD Y COMPUTACION ESTRUCTURAS DE DATOS SEGUNDA EVALUACION – II TERMINO 2011 ‐ 2012 Nombre:________________________________________________Matricula:_______________Paralelo:_______ Tema 1 (15 ptos) Dado la siguiente tabla de hash, implementada usando la técnica de hash abierto, como quedaría la tabla si se llena con la técnica de hash cerrado, usando una función de re‐hash lineal. Considere que los datos fueron ingresados en orden alfabético. D,E A,B.C F,G,H G H D A B C E F Tema 2 (25 ptos) Grafique el árbol que contiene el código de huffman para los símbolos y frecuencias de la siguiente tabla:

description

solucion del examen final de estructuras de datos

Transcript of Solucion Examen Est Dat Final

  • ESCUELASUPERIORPOLITECNICADELLITORAL

    FACULTADDEINGENIERIAENELECTRICIDADYCOMPUTACIONESTRUCTURASDEDATOS

    SEGUNDAEVALUACIONIITERMINO20112012

    Nombre:________________________________________________Matricula:_______________Paralelo:_______Tema1(15ptos) Dadolasiguientetabladehash,implementadausandolatcnicadehashabierto,comoquedaralatablasisellenaconlatcnicadehashcerrado,usandounafuncinderehashlineal.Considerequelosdatosfueroningresadosenordenalfabtico.

    D,E

    A,B.C

    F,G,H

    G

    H

    D

    A

    B

    C

    E

    F

    Tema2(25ptos)Grafiqueelrbolquecontieneelcdigodehuffmanparalossmbolosyfrecuenciasdelasiguientetabla:

  • Letra Frecuencia CdigoHuffmanS 10 110 I 12 111 E 16 00 P 5 1001 U 9 101 D 3 1000

    Espacioenblanco

    14 01

    Luegocodificarelsiguientemensaje: SISEPUEDE110111011100001100110100100000

    P5D3

    DP8 U9

    DPU17

    I12S10

    SI22

    E16

    DPUSI39

    EDPUSI69

    14

    E30

  • Tema3(30ptos)Twittermantieneporcadausuariounalistaconsusmensajesordenadosenformacronolgica,delmsrecientealmsantiguo.Siunusuarioquiereseguiraotro(verlosmensajesquepublica),Twitterledaaccesoalalistademensajesdeelusuarioaseguir.Twitterfuncionadetalformaqueenlacomputadoradelusuario,aparecenlos10ltimosmensajesquefueronpublicadosporlaspersonasalasqueelusuariosigue.TwittermanejalosmensajesconelsiguienteTDA:typedef struct Mensaje{ string texto; time tiempo; } Mensaje; SepidequeustedescribaunafuncinobtenerMensajequerecibaunarreglodelistasdemensajesdetamaoN(dondeNeselnmerodeusuariosalosquesesesigueenTwitter)yqueretorneunheapconlos10ltimosmensajes.Lafunciondebeserptimaenelsentidodequeelrecorridodelaslistasdebedeminimizarse.NOTA:AsumaqueelTDAHeaptienecapacidaddecompararvariablesdetipotime.Heap *obtenerMensaje(List *L[], int n){ Heap *H = heapNew(10, DESC, timeCompare); NodeList **p = malloc(sizeof(NodeList *) * n); int i = 0; inicializar(p, L, n); int j = llenarHeapConDiezPrimeros(H, p, n); mejorarHeap(H, p, n, j); } int llenarHeapConDiezPrimeros (Heap *H, NodeList **p, int n){ int i, j = 0; for(i = 0; i < 10; i++){ if(p[j%n]!= NULL) {

    heapEnQueue(H, nodeListGetCont(p[j%n])); p[j%n] = p[j%n]->next; } j++;

    } return j%n; } void mejorarHeap((Heap *H, NodeList **p, int n, int j){ while(!todasEstanRevisadas(p, n)){ if(p[j%n]!= NULL && timeCompare(heapGetElement(H, 0), nodeListGetCont(p[j%n])) > 0){ heapDeQueue(H); heapEnQueue(H, nodeListGetCont(p[j%n])); p[j%n] = p[j%n]->next;

    }else p[j%n]= NULL;

    j ++; } Tema4(30puntos)LosgelogosdelInstitutogeofsicoEcuatorianodeseanimplementarunsistemadesimulacindelaerupcindelvolcn

    Tungurahua.Paraellosehadefinidoelsiguientemapadelasciudadesqueestnubicadasenlasquebradasositiospordondepasaralalava,dondeelpuntoTrepresentaelvolcn.

  • Conelobjetivodeconocerelimpactodeunaerupcinenlazona,sehaestimadoenelmapaelporcentajedelavaquepasaraporcadaciudadposiblementeafectada.Adicionalmente,sehaconsideradoque,dependiendodelareadela

    ciudadafectada,cadaciudadretendra100toneladasporkilometrocuadrado.Estodisminuiralacantidaddelavaquepodrallegaralassiguientesciudades.

    LasuperficieenKm.cuadradosdecadaciudadeslasiguiente:B=10,C=11,D=4,E=15,F=16,G=8,H=12,I=8,J=6,K=10,

    L=20,M=10.Enesecaso,sielvolcngenerase10.000toneladasdelava,solo2000(el20%)llegaranalaciudadI,dondeseretendran800toneladas,quedandosolo1200paraafectaralasciudadesaledaasaI(KyJ)

    EscribaunafuncincalcularLavaquedadaunaciudadyunacantidadXdelavageneradaporelvolcn,calculelacantidaddelavaquellegaraalaciudad.int calcularLava(Gvertex *vorigen, Gvertex *vdestino, int X){ gVertexVisit(vorigen);a List *Ladj = gVertexGetAdjacents(vorigen); NodeList *p; for(p = listGetHeader(Ladj); p!= NULL; p = p->next){ Gedge *e = nodeListGetCont(p); Gvertex *vd = gEdgeGetDestination(e); if(!gVertexIsVisited(vd)){

    double *porcentaje = gEdgeGetExtraInfo(e); X = X * (*porcentaje); double *area = gVertexGetContent(vd);

    if(vdestino == vd) return X ;

    if(area*100 < X) X = X area*100; else X = 0;

    return calcularLava(vd, vdestino, X); }

    } }