miércoles, 20 de enero de 2010

MATERIAL INTERESANTE


Queridos chicos y queridas chicas, la semana que viene comienzan las clases del segundo cuatrimestre y habrá que ponerse las pilas. Así que supongo que la documentación que os enlazo os puede resultar de interés:

Estructuras de datos y métodos algorítmicos : ejercicios resueltos

Os agradecería (y supongo que vosotros tambień) que si encontráis algo por la red relacionado con la asignatura lo publicárais aquí para colaborar entre todos en la dinamización de los contenidos.

Nos vemos el lunes!

5 comentarios:

  1. Como más de uno lo habéis insinuado, os aviso de que en este blog no voy a dejar ningún tipo de material, ya que para eso está la plataforma moodle.

    ResponderEliminar
  2. LKB, que le parece si de alguna manera se pudiera publicar en este blog, aspectos relacionados con el mundo laboral, becas, ayudas, investigaciones, ...

    ResponderEliminar
  3. A mí me parece perfecto siempre y cuando estén dentro del ámbito de las Estructuras de Datos.

    ResponderEliminar
  4. LISTAS EN PROLOG ≈ ESPECIFICACION ALGEBRAICA

    esVacia([]).
    primero([X|_],X).
    resto([_|R],R).
    setPrimero([_|L],E,[E|L]).
    setResto(X,R,[X|R]).
    insertarPrincipio(E,L,[E|L]).
    insertarPrincipio2(O,A,K):-A=[],setResto(A,[],P),setPrimero(P,O,K),!.
    insertarPrincipio2(O,L,K):-primero(L,P),resto(L,R),setResto(P,R,I),insertarPrincipio(I,O,K). %setPrimero
    eliminaPrimero([_|R],R).
    clone(A,A).
    clone2([],[]).
    clone2(A,S):-resto(A,R),primero(A,P),clone2(R,D),insertarPrincipio(P,D,S),!.
    toString([]).
    toString([X|R]):-write(X),write(' '),toString(R).
    equals([],[]).
    equals([X|R],[Y|T]):-X=Y,equals(R,T).
    longitud([],0).
    longitud([_|R],N):-N is 1+S,longitud(R,S).
    ultimo([X],X).
    ultimo([_|R],N):-ultimo(R,N).
    elementoN([X|_],1,X).
    elementoN([_|R],N,S):-A is N-1,elementoN(R,A,S).
    pertenece(L,O):-posicion(L,O,N),N>0,!.
    posicion([],_,_):-fail.
    posicion([O|_],O,1).
    posicion([_|R],O,N):-posicion(R,O,A),N is A+1.
    insertarFinal([],O,[O]).
    insertarFinal([X|R],O,[X|P]):-insertarFinal(R,O,P).
    insertarN(L,O,1,[O|L]).
    insertarN([X|L],O,N,[X|S]):-A is N-1,insertarN(L,O,A,S).
    concatenar(X,[],[X]).
    concatenar(X,[Y|S],Ñ):-insertarFinal(X,Y,P),concatenar(P,S,Ñ).
    eliminaO(O,[X|L],L):-O=X.
    eliminaO(O,[_|L],A):-eliminaO(O,L,A).
    eliminaUltimo([_],[]).
    eliminaUltimo([X|R],[X|A]):-eliminaUltimo(R,A).
    eliminaN([_|R],1,R).
    eliminaN([X|R],N,[X|P]):-A is N-1,eliminaN(R,A,P).
    modificaN(A,O,N,B):-eliminaN(A,N,S),insertarN(S,O,N,B).
    modificaObjeto(L,O1,O2,S):-pertenece(L,O1),posicion(L,O1,N),modificaN(L,O2,N,S).
    modificaPrimero(L,O,P):-modificaN(L,O,1,P).
    coloca([],O,[O]).
    coloca(A,O,S):-primero(A,P),P@>O,insertarPrincipio(A,O,S).
    coloca([X|R],O,[X|Z]):-coloca(R,O,Z),!.
    ordena([],[]).
    ordena([X|R],P):-ordena(R,S),coloca(S,X,P),!.
    crear(0,[0]).
    crear(N,[N|A]):-Q is N-1,crear(Q,A),!.
    concatenar2([],A,A).
    concatenar2([X|R],A,[X|W]):-concatenar2(R,A,W). %%como lo hago en java

    ResponderEliminar
  5. Supongo que las listas en prolog os recuerdan a la especificación algebraica del TAD lista que hemos visto en clase ¿no?
    Gracias 0.1835113 por hacerlo evidente y espero que os haya ayudado a entenderlo mejor en ambas asignaturas.

    ResponderEliminar