Estructuras de Datos I Curso: 1º

Share Embed Donate


Short Description

Download Estructuras de Datos I Curso: 1º...

Description

Estructuras de Datos I Curso: 1º Ingeniería Técnica Informática de Sistemas Universidad de Las Palmas de Gran Canaria Examen Diciembre de 2002 Ejercicio 1 Implementación TArchivo es Tipo TNodo es estructura Campo TSeguridad Nivel Campo Archivo Sig Campo TDocumento Doc Fin tipo Tipo TSeguridad es Público, Reservado, Secreto fin tipo Tipo Archivo es puntero Operaciones Procedimiento constructor Inicia(A) Variable entrada/salida Archivo A A nulo Retornar Fin procedimiento Procedimiento Insertar(A,D,N) Variables entrada/salida Archivo A entrada TDocumento D

1

TSeguridad N local Archivo Aux,Aux2 logico e si A = nulo entonces Asignador(A,D,N) Aux A; Aux2 A si no e falso Aux A; Aux2 A mientras Aux " nulo y e = falso hacer si Identificador(D)"Identificador(AuxDoc) entonces si AuxSig = nulo entonces Aux AuxSig si no Aux AuxSig; Aux2 Aux fin si si no e verdadero fin si fin mientras si e = falso entonces Asignador(Aux,D,N) Aux2Sig Aux; Aux2 Aux si no si Aux Nivel = Público y N " Público entonces AuxNivel N

2

si no si AuxNivel = Reservado y N = Secreto entonces AuxNivel N fin si fin si fin si fin si retornar fin procedimiento {Insertar(A,D,N} procedimiento Asignador(A,D,N) variables entrada Archivo A TDocumento D TSeguridad N A TomarBloque(TNodo) ASig nulo ADoc D ANivel N retornar fin procedimiento{Asignador(A,D,N)} función TDocumento (A,I,N) variables entrada Archivo A entero I TSeguridad N local TDocumento D Archivo Aux Aux A

3

mientras Aux " nulo hacer si Identificador(AuxDoc) " I entonces Aux AuxSig si no si N " AuxNivel entonces D AuxDoc devolver(D) si no devolver(DOCNULL) fin si fin si fin mientras devolver(DOCNULL) fin funcion funcion entera Cuantos(A,N) variables entrada Archivo A TSeguridad N local Archivo Aux entero C Aux A; C 0 mientras Aux " nulo hacer si AuxNivel " N entonces C C+1 Aux AuxSig si no Aux AuxSig

4

fin si fin mientras devolver(C) fin funcion fin tipo fin implementacion{TArchivo} Ejercicio 2 Funcion TLista MaxMin(L,Minimo,Maximo) Variable entrada TLista L entero Minimo, Maximo local TLista Aux Asigna (Aux,L) si no EsVacia(L) entonces si Primero(L) < minimo entonces Aux MaxMin(Resto(Aux),minimo,maximo) sino si Primero(L) " minimo y Primero(L) " maximo entonces Aux Crear(Primero(L),MaxMin(Resto(Aux),minimo,maximo) sino si Primero(L) > maximo entonces Aux MaxMin(Resto(Aux),Minimo,Maximo) fin si fin si fin si fin si devolver (Aux)

5

fin funcion Ejercicio 3 Funcion logica Arbol(T,N) variables entrada puntero T entero N si T " nulo entonces si N − TInfo > 0 entonces N N − TInfo si Arbol(TIzq,N) entonces devolver Arbol(TDer,N) fin si sino si TInfo − N = 0 entonces si TIzq = nulo entonces devolver verdadero sino devolver falso fin si fin si devolver falso fin si fin si fin funcion Ejercicio 4 − Junio 2002 Funcion logica DobleArco(G) variables entrada Grafo G

6

local entero i,j,e,int i 1;e 0;int 0 mientras i " Vértices(G) y e = 0 hacer j1 mientras j " Vertices hacer si ExisteArco(i,j,G) y i " j entonces e e+1 fin si si ExisteArco(j,i,G) y i " j entonces int int+1 fin si j j+1 fin mientras si e " 0 y e/2 = int entonces devolver verdadero sino e0 fin si i i+1 fin mientras si i > Vertices(G) entonces devolver falso fin si fin funcion Examen Diciembre de 2001 Ejercicio 1

7

Procedimiento Ordena(Arb,V1,V2,C) variables entrada ArbolBin Arb TElemento V1,V2 salida TCola C si no EsVacio(Arb) entonces si Raiz(Arb) < V1 entonces Ordena(Derecho(Arb),V1,V2,C) sino si Raiz(Arb) > V2 entonces Ordena(Izquierdo(Arb),V1,V2,C) sino Ordena(Izquierdo(Arb),V1,V2,C) Insertar(C,Raiz(Arb)) Ordena(Derecho(Arb),V1,V2,C) fin si fin si fin si retornar fin procedimiento Ejercicio 2 Funcion logica Inconexo(G) variables entrada Grafo G locales entero i,j,e,n logico p i 1; j 1; e 0; n 0 mientras i " Vertices(G) y n " 0,3 hacer

8

p verdadero mientras j " Vertices(G) hacer si ExisteArco(i,j,G) y i " j entonces p falso fin si si ExisteArco(j,i,G) y i " j entonces p falso fin si j j+1 fin mientras si p = verdadero entonces e e+1 n e/Vertices(G) fin si i i+1 fin mientras si n > 0,3 entonces devolver verdadero sino devolver falso fin si fin funcion Ejercicio 3 Implementación Acceso es tipo TNodo es estructura Campo ristra DNI

9

Campo logico entrada Campo Acceso Sig Fin tipo tipo Acceso es puntero operaciones Procedimiento constructor Inicia(T,FS) variables entrada ristra FS entrada/salida Acceso T local Acceso Aux,Aux1 FicheroTexto F ristra DNIS si Abrir(F,FS,Lectura) entonces T nulo si no FinFichero(F) entonces Leer(F,DNIS) Asignador(T,DNIS) Aux1 T si no FinFichero(F) entonces mientras no FinFichero(F) hacer Leer(F,DNIS) Asignador(Aux,DNIS) Aux1 Sig Aux Aux1 Aux fin mientras fin si fin si

10

Cerrar(F) fin si retornar fin procedimiento Procedimiento Asignador(Aux,DNIS) variables entrada ristra DNIS salida Acceso Aux Aux TomarBloque(TNodo) Aux Sig nulo Aux DNI DNIS Aux entrada falso retornar fin procedimiento Funcion logica AutorizaEntrada(T,DNI) variables entrada/salida Acceso T entrada ristra DNI local Acceso Aux logico encontrado Aux T; encontrado falso mientras Aux " nulo y no encontrado hacer si Aux DNI = DNI entonces encontrado verdadero si no Aux Aux Sig fin si fin mientras

11

si Aux = nulo entonces devolver falso si no si Aux entrada = falso entonces Aux entrada verdadero devolver verdadero si no devolver falso fin si fin si fin funcion Funcion logica ControlaSalida(T,DNI) variables entrada ristra DNI entrada/salida Acceso T local Acceso Aux logica encontrado Aux T; encontrado falso mientras Aux " nulo y no encontrado hacer si Aux DNI = DNI entonces encontrado verdadero si no Aux Aux Sig fin si fin mientras si Aux = nulo entonces devolver falso

12

si no si Aux entrada = verdadero entonces Aux entrada falso devolver verdadero si no devolver falso fin si fin si fin funcion Procedimiento destructor Finaliza(T) variable entrada Acceso T local Acceso Aux,Aux1 Aux T;Aux1 T; T nulo mientras Aux " nulo hacer Aux Aux Sig Liberar(Aux1) Aux1 Aux fin mientras retornar fin procedimiento fin tipo {Acceso} fin Implementacion {Acceso} Examen Diciembre 2000 Ejercicio 1 Implementacion TadBalanza es Tipo Balanza es estructura

13

Campo real PlatIzq, PlatDer fin tipo Operaciones Procedimiento Vacia(B) variable entrada/salida Balanza B B.PlatIzq 0; B.PlatDer 0 retornar fin procedimiento Procedimiento Carga(B,P,M) variable entrada/salida Balanza B entrada caracter P real M si P = I entonces B.PlatIzq B.PlatIzq + M si no B.PlatDer B.PlatDer + M fin si retornar fin procedimiento Funcion real Fiel(B) variable entrada Balanza B devolver B.PlatDer − B.PlatIzq fin funcion fin implementacion {TadBalanza} Ejercicio 2 Funcion logica PAlante(G)

14

variables entrada Grafo G local entero i,j logico p, Visit[Vertices(G)] p verdadero para i desde 1 hasta Vertices(G) hacer Visit[i] falso fin para i1 mientras i " Vertices(G) y p = verdadero hacer j1 mientras j " Vertices(G) y p = verdadero hacer si ExisteArco(i,j,G) entonces si i " j entonces p falso si no si Visit[j] = falso entonces Visit[j] verdadero si no p falso fin si fin si fin si j j+1 fin mientras i i+1 fin mientras

15

mientras i " Vertices(G) y j = 0 hacer si Visit[i] = verdadero entonces j1 fin si i i+1 fin mientras si j = 0 entonces devolver falso si no devolver p fin si fin funcion Ejercicio 3 Funcion real Expresion(Arb) variables entrada ArbolBin Arb local real v1,v2 si (Raiz(Arb) = +) o (Raiz(Arb) = −) o (Raiz(Arb) = x) o (Raiz(Arb) = /) entonces v1 Izquierdo(Arb) v2 Derecho(Arb) segun Raiz(Arb) hacer + : devolver (v1+v2) − : devolver (v1−v2) x : devolver (v1 x v2) / : devolver (v1/v2) fin segun

16

si no devolver (Valor(Raiz(Arb))) fin si fin funcion Examen Septiembre 2000 Ejercicio 1 Procedimiento Postorden(C) variable entrada TCola C local TReg Dato Tipo TReg es estructura campo Info campo entero Nivel fin tipo si no EsVacia(C) entonces Dato Extraer(C) mientras no EsVacia(C) y Dato.Nivel " Examinar(C).Nivel hacer Postorden(C) fin mientras escribir Dato fin si retornar fin procedimiento Ejercicio 2 Funcion logica Complementario(G1,G2) variables entrada Grafo G1,G2 local entero i,j

17

logico Res para i desde 1 hasta Vertices(G1) hacer para j desde 1 hasta Vertices(G1) hacer si ExisteArco(i,j,G1) y no ExisteArco(i,j,G2) entonces Res verdadero si no si no ExisteArco(i,j,G1) y ExisteArco(i,j,G2) entonces Res verdadero si no Res falso devolver Res fin si fin si fin para fin para devolver Res fin funcion Ejercicio 3 Implementacion TContador es Tipo TContador es estructura campos enteros Actual,Inicial,Final,Paso operaciones Procedimiento ValorInicial(C,I) variables entrada entero I entrada/salida TContador C C.Inicial I

18

C.Actual I retornar fin procedimiento Procedimiento ValorFinal(C,F) variables entrada entero F entrada/salida TContador C C.Final F C.Actual C.Inicial retornar fin procedimiento Procedimiento Paso(C,P) variables entrada entero P entrada/salida TContador C C.Paso P C.Actual C.Inicial retornar fin procedimiento Procedimiento Reset(C) variable entrada/salida TContador C C.Actual C.Inicial retornar fin procedimiento Procedimiento Inc(C) variable entrada/salida TContador C si C.Actual < C.Actual + C.Paso entonces C.Actual C.Actual + C.Paso

19

fin si retornar fin procedimiento Funcion entera Examinar(C) variable entrada/salida TContador C Devolver C.Actual fin funcion fin tipo {TContador} fin implementacion {TContador} Algoritmo PosiNega variables Contador CN,CP entero V Iniciar(CN) Iniciar(CP) ValorInicial(CN,0) ValorInicial(CP,0) Paso(CN,1) Paso(CP,1) repetir escribir Introduzca un valor entero por favor: leer V si V > 0 entonces Inc(CP) si no si V < 0 entonces Inc(CP)

20

fin si fin si hasta que V = 0 fin repetir V Examinar(CP) escribir Valores positivos: ,V V Examinar(CN) escribir Valores negativos: ,V parar fin algoritmo Examen Junio 2000 Ejercicio 2 Tipo Valores es estructura campo TClave campo TValor campo Tabla Ant,Sig fin tipo Tipo Tabla es puntero a Valores fin tipo Procedimiento Asignar(T1,T2) variables entrada tabla T1 entrada/salida tabla T2 local tabla Aux,Aux2,Aux3 si T1 " nulo entonces si T1 Ant = nulo entonces AsignaNodos(T1,Aux) Aux2 Aux

21

T1 T1 Sig si no mientras T1 Sig " nulo hacer AsignaNodos(T1,Aux2) Aux Sig Aux2 Aux2 Ant Aux Aux Aux Sig fin mientras AsignaNodos(T1,Aux2) Aux Sig Aux2 Aux2 Ant Aux mientras Aux Ant " nulo hacer Aux Aux Ant fin mientras fin si si no Aux nulo fin si si T2 " nulo entonces Aux3 T2 mientras T2 Sig " nulo hacer T2 T2 Sig Liberar(Aux3) Aux3 T2 fin mientras T2 Aux

22

Liberar(Aux3) si no T2 Aux fin si retornar fin procedimiento Procedimiento AsignaNodos(T1,Aux2) variables entrada tabla T1 entrada/salida tabla Aux2 Aux2 TomarBloque(Valores) Aux2 TClave T1 TClave Aux2 TValor T1 TValor Aux2 Sig nulo Aux2 Ant nulo retornar fin procedimiento Ejercicio 3 Funcion entero Aislado(G) variables entrada Grafo G locales entero i,j,Res logico Visit[Vertices(G)] para i desde 1 hasta Vertices(G) hacer Visit[i] falso fin para para i desde 1 hasta Vertices(G) hacer j1

23

mientras j " Vertices(G) hacer si ExisteArco(j,i,G) y i " j entonces Visit[i] verdadero j Vertices(G) fin si j j+1 fin mientras fin para Res 0 para i desde 1 hasta Vertices(G) hacer si no Visit[i] entonces Res Res+1 fin si fin para devolver Res fin funcion Examen Septiembre 1999 Ejercicio 2 Funcion Puntero Arbol(P) variable entrada/salida TPila P local Puntero T Reg Dato TPila Aux Tipo Reg es estructura campo TElemento Info campo entero Grado

24

fin tipo si no EsVacia(P) entonces T TomarBloque Dato Examinar(P) Desapilar(P) T Info Dato.Info T Izq nulo T Der nulo si Dato.Grado = 2 entonces T Der Arbol(P) T Izq Arbol(P) si no si Dato.Grado = 0 entonces devolver T si no T Izq Arbol(P) devolver T fin si fin si si no T nulo fin si devolver T; fin funcion Examen Junio 1999 Ejercicio 1 Funcion TConjunto Union(C1,C2)

25

variables entrada TConjunto C1,C2 local TConjunto C3 puntero P C3 CrearVacio si EsVacio(C1) y EsVacio(C2) entonces devolver C3 si no si EsVacio(C1) entonces devolver Copia(C2) si no si EsVacio(C2) entonces devolver Copia(C1) si no C3 Copia(C1) P C2.Primero mientras P " nulo hacer si no Pertenece(C3,PElemento) entonces Q TomarBloque(TNodo) Q Elemento P Elemento Q Siguiente C3.Primero C3.Primero Q fin si P P Siguiente fin mientras devolver C3 fin si

26

fin si fin si fin funcion Ejercicio 3 Procedimiento Arbol(T,N,O) variables entrada/salida entero O entrada puntero T entero N si T " nulo entonces T Nivel N Arbol(TIzq,N+1,O) T Orden O O O+1 Arbol(TDer,N+1,O) fin si retornar fin procedimiento

27

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF