Taller Estructura de Datos

11
PRESENTADO POR JUAN CARLOS PEREZ MORA Taller estructura de datos. Cada punto tiene un valor de 100 puntos Entre!ar del taller "#$i"o el % de a&ril de '01( 1 Es)ri&ir un pro!ra"a *ue )o"pare dos ve)tores + di!a si son i!uales o no ' Es)ri&ir un pro!ra"a *ue ordene un ve)tor de 10 posi)iones )on el ",todo de ordena"iento de la &ur&u-a 3. Expli ca r de tal la damente e l método de selecci ón directa utilizando para ello el siguiente arreglo inicial. '0 ./ 0 20 / 1 4. Explicar la organizaci ón de árboles de búsqueda óptimos ilustrándolo mediante un ejemplo. 5. Se ti ene una l ista enla zada que alma cena n úmeros enteros. Realizar un procedimiento que suprima de la lista todos los elementos mayores que uno dado como lí mite. Por Ejemplo, si la lista inicial es (2

description

Taller Estructura de Datos

Transcript of Taller Estructura de Datos

Page 1: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 1/11

PRESENTADO POR JUAN CARLOS PEREZ MORA

Taller estructura de datos.

Cada punto tiene un valor de 100 puntos

Entre!ar del taller "#$i"o el % de a&ril de '01(

1 Es)ri&ir un pro!ra"a *ue )o"pare dos ve)tores + di!a si son i!uales o no

' Es)ri&ir un pro!ra"a *ue ordene un ve)tor de 10 posi)iones )on el ",todo de

ordena"iento de la &ur&u-a

3. Explicar detalladamente el método de selección directa utilizando para ello elsiguiente arreglo inicial.

'0 ./ 0 20 / 1

4. Explicar la organización de árboles de búsqueda óptimos ilustrándolo mediante unejemplo.

5. Se tiene una lista enlazada que almacena números enteros. Realizar un

procedimiento que suprima de la lista todos los elementos mayores que uno dadocomo lí mite. Por

Ejemplo, si la lista inicial es

(2

Page 2: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 2/11

PRESENTADO POR JUAN CARLOS PEREZ MORA

DESARROLLO

1)  R/TA

3in)lude4iostrea"56int l710089v'71008:int a9&;09);09d;09ta"anio19ta"anio':void "ain<=>

  )out44?in!rese el ta"a@o para el pri"er ve)tor?44endl:  )in66ta"anio1:  )out44?in!rese el ta"anio para el se!undo ve)tor?44endl:  )in66ta"anio':  )out44?in!rese los ele"entos del pri"er ve)tor?44endl:  or<a;0:a4ta"anio1:aBB=>  )out44?in!rese ele"ento de la posi)in 7?44a44?8t?:  )in66l7a8:    )out44endl44?in!rese ele"entos del se!undo ve)tor?44endl:  or<a;0:a4ta"anio':aBB=>  )out44?in!rese ele"ento de la posi)in 7?44a44?8t?:

  )in66v'7a8:   

pienso *ue lo pri"ero seria ver si los ve)tores tienen el "is"o ta"a@o  o "e-or di)5o la "is"a )antidad de ele"entos  or<a;0:l7a8:aBB=>  )BB:)ontador de ele"entos del ve)tor l    or<a;0:v'7a8:aBB=>  dBB:)ontador de ele"entos del ve)tor v'    i<);;d=>si tienen la "is"a )antidad de ele"entos enton)es

  or<a;0:a4:aBB=>  i<l7a8;;v'7a8=>  &BB:)ontador de )antidad de ele"entos i!uales        i<&;;=  )out44endl44?los ve)tores son i!uales?44endl:  else  )out44endl44?los ve)tores no son i!uales?44endl:

Page 3: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 3/11

PRESENTADO POR JUAN CARLOS PEREZ MORA

2) R/TA

3in)lude

usin! na"espa)e std:

int nu"eros7108:

void &ur&u-a <int ordena)ion=:

int "ain <= >

)out 44 F?GntroduH)a 10 enteros F? 44 endl:

or <int i;0: i410: iBB= >

)out 44 F?GntroduH)a el nI"ero para la posi)in F? 44 i 44 F? F?:)in 66 nu"eros7i8:

or <int i;0: i410: iBB=)out 44 nu"eros7i8 44 F? F?:

)out 44 endl:

&ur&u-a<0=:

or <int i;0: i410: iBB=)out 44 nu"eros7i8 44 F? F?:

)out 44 endl:

&ur&u-a<1=:

or <int i;0: i410: iBB=)out 44 nu"eros7i8 44 F? F?:

)out 44 endl:

Page 4: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 4/11

PRESENTADO POR JUAN CARLOS PEREZ MORA

%=RTA

  '0 ./ 0 20 / 1 (2

Pri"era pasadaA7'8 4 A718 ./ 4 '0 No 5a+ inter)a"&io

A '09 ./9 09 9 209 /9 19 (2

Se!unda pasadaA7%8 4 A7'8 0 4 ./ Si 5a+ inter)a"&ioA7'8 4 A718 0 4 '0 Si 5a+

A '09 09 ./9 9 9 /9 19 (2

 Ter)era pasadaA78 4 A7%8 0 4 '0 Si 5a+ inter)a"&ioA7%8 4 A7'8 0 4 '0 Si 5a+ inter)a"&io

A; 09 '09 ./9 9 209 /9 19 (2

Kasta la septi"a pasada el arre!lo *ueda ordenado 09 19 '09 9 /9 (29 209 ./

En !eneral9 si el arre!lo se en)uentra ordenado se ee)tIan )o"o "#$i"o n1 )o"para)iones + o"ovi"ientos entre ele"entos C"in ; n1

El nI"ero "#$i"o de )o"para)iones + "ovi"ientos se produ)e )uando los ele"entos del arre!loest#n en orden inversoC"a$ ; 1B'B%BB<n1= ; n<n1='C"a$; <n'n='

El nI"ero de )o"para)iones pro"edio *ue es )uando los ele"entos apare)en en el arre!lo en oaleatoria9 puede ser )al)ulado "ediante la su"a de las )o"para)iones "ni"as + "#$i"as divididentre 'C"ed ; 7<n1= B <n'n='8'Al 5a)er la opera)in9 nos *uedaC"ed ; <n'Bn'=

Respe)to al nI"ero de "ovi"ientos9 se!In nut5 o&tiene los si!uienteM"in ; 0M"ed ; <n'n=M"a$ ; <n'n='

Page 5: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 5/11

PRESENTADO POR JUAN CARLOS PEREZ MORA

4) RTA

)onsid,rese el )on-unto de )laves 19 '9 %9 )on pro&a&ilidades de a))eso p1;129 p';p%;2Estas )laves pueden or!aniHarse )o"o #r&oles de &Is*ueda de ( "aneras dierentes<)o"o esta en la ilustra)in= Las lon!itudes de )a"ino ponderadas9 esta&le)idas )o"o la sde todos los pasos de la raH a )ada nodo "ultipli)ados por la pro&a&ilidad de a))eso a )adanodo9 para )ada una de las )on!ura)iones son

Page 6: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 6/11

PRESENTADO POR JUAN CARLOS PEREZ MORA

5) RTA

3in)lude 4stdio563in)lude 4stdli&563in)lude 4strin!56 t+pede stru)t Ele"entoLista>  )5ar dato:  stru)t Ele"entoLista si!uiente:Ele"ento: t+pede stru)t ListaGdenti)ar>  Ele"ento ini)io:  Ele"ento n:  int ta"ano:Lista: ini)ialiHa la listavoid in)ialiHa)ion<Lista lista=:En )aso de error devuelve 1 sino 0int Gnser)ionEnListaQa)ia<Lista lista9 )5ar dato=:insertar en ini)io de la listaint Gnser)ionGni)ioLista<Lista lista9 )5ar dato=:insertar en n de la listaint Gnser)ioninLista<Lista lista9 Ele"ento a)tual9 )5ar dato=:insertar en posi)ion de la listaint Gnser)ionLista <Lista lista9 )5ar dato9 int pos=:eli"ina un ele"ento al ini)io de una listaint Eli"inarGni)io<Lista lista=:supri"ir un ele"ento de una posi)ionint Eli"inarEnLista<Lista lista9 int pos=: "uestra la lista enteravoid visualiHa)ion<Lista lista=: destruir la lista void destruir<Lista lista=: un)ion "enu int "enu<Lista lista9int =:

Una lista enlaHada sin nin!un ele"ento se lla"a lista va)aSu puntero ini)ial tiene el valor NULLSi un la lista es de 1 solo ele"ento9 el )a"po si!uiente apunta a NULLint "ain<=>  )5ar ele))ion:  )5ar no":  Lista lista:  Ele"ento a)tual: 

i <<lista ; <Lista = "allo) <siHeo <Lista=== ;; NULL=  return 1:

Page 7: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 7/11

PRESENTADO POR JUAN CARLOS PEREZ MORA  i <<no" ; <)5ar = "allo) <(0== ;; NULL=  return 1:  a)tual ; NULL:  ele))ion ; o: 

in)ialiHa)ion<lista=:  int 9 pos: 

V5ile <ele))ionW; 2=>  ele))ion ; "enu <lista9 X=:  sVit)5 <ele))ion=>  )ase 1  print <?Gn!rese un ele"ento ?=:  s)an <?Ys?9 no"=:  !et)5ar <=:  i <lista6ta"ano ;; 0=  Gnser)ionEnListaQa)ia <lista9 no"=:  else  Gnser)ionGni)ioLista <lista9 no"=:  print <?Yd ele"entosini;Ys9n;YsFn?9 lista6ta"ano9  lista6ini)io6dato9 lista6n6dato=:  visualiHa)ion<lista=:  &rea:  )ase '  print <?Gn!rese un ele"ento ?=:  s)an <?Ys?9 no"=:  !et)5ar <=:  Gnser)ioninLista <lista9 lista6n9 no"=:  print <?Yd ele"entosini;Ys9n;YsFn?9 lista6ta"ano9  lista6ini)io6dato9 lista6n6dato=:  visualiHa)ion<lista=:  print<?Fn?=:  &rea:  )ase %  print <?Gn!rese un ele"ento ?=:  s)an <?Ys?9 no"=:  !et)5ar <=:  do>  print <?Gn!rese la posi)ion ?=:  s)an <?Yd?9 Xpos=:    V5ile <pos 4 1 pos 6 lista6ta"ano=:  !et)5ar <=:

  i <lista6ta"ano ;; 1 pos ;; lista6ta"ano=>  ; 1:  print<?Fn?=:  print<?WError9 posi)ion erronea u o)upado WFn?=:  print<?Fn?=:  &rea:    Gnser)ionLista <lista9 no"9 pos=:  print <?Yd ele"entosini;Ys9n;YsFn?9 lista6ta"ano9  lista6ini)io6dato9 lista6n6dato=:  visualiHa)ion<lista=:  &rea:

Page 8: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 8/11

PRESENTADO POR JUAN CARLOS PEREZ MORA  )ase   Eli"inarGni)io <lista=:  i <lista6ta"ano W; 0=  print <?Yd ele"entosini;Ys9n;YsFn?9 lista6ta"ano9  lista6ini)io6dato9 lista6n6dato=:  else  print <?lista va)iaFn?=:  visualiHa)ion <lista=:  &rea:  )ase (  do>  print <?Gn!rese la posi)ion ?=:  s)an <?Yd?9 Xpos=:    V5ile <pos 4 1 pos 6 lista6ta"ano=:  !et)5ar <=:  Eli"inarEnLista <lista9 pos=:  i <lista6ta"ano W; 0=  print <?Yd ele"entosini;Ys9n;YsFn?9 lista6ta"ano9  lista6ini)io6dato9 lista6n6dato=:  else  print <?lista va)iaFn?=:  visualiHa)ion <lista=:  &rea:  )ase /  destruir <lista=:  print <?la lista 5a sido destruida Yd ele"entosFn?9 lista6ta"ano=:  &rea:      return 0: 

Gni)ialiHar una listavoid in)ialiHa)ion<Lista lista=>  lista6ini)io ; NULL:  lista6n; NULL:  lista6ta"ano ; 0: Gnser)in en una lista va)a int Gnser)ionEnListaQa)ia<Lista lista9 )5ar dato=>

  Ele"ento nuevo[ele"ento:  i<<nuevo[ele"ento ; <Ele"ento ="allo)<siHeo<Ele"ento===;;NULL=  return 1:  i<<nuevo[ele"ento6dato ; <)5ar ="allo)<(0siHeo<)5ar===;;NULL=  return 1:  str)p+<nuevo[ele"ento6dato9 dato=: 

nuevo[ele"ento6si!uiente ; NULL:  lista6ini)io ; nuevo[ele"ento:  lista6n ; nuevo[ele"ento:  lista6ta"anoBB:  return 0:

Page 9: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 9/11

PRESENTADO POR JUAN CARLOS PEREZ MORA Gnser)ion al ini)io de una listaint Gnser)ionGni)ioLista<Lista lista9 )5ar dato=>  Ele"ento nuevo[ele"ento:  i<<nuevo[ele"ento ; <Ele"ento ="allo)<siHeo<Ele"ento===;;NULL=  return 1:  i<<nuevo[ele"ento6dato ; <)5ar ="allo)<(0siHeo<)5ar===;;NULL=  return 1:  str)p+<nuevo[ele"ento6dato9 dato=: 

nuevo[ele"ento6si!uiente ; lista6ini)io:  lista6ini)io;nuevo[ele"ento:  lista6ta"anoBB:  return 0: Gnser)ion al nal de la lista int Gnser)ioninLista<Lista lista9 Ele"ento a)tual9 )5ar dato=>  Ele"ento nuevo[ele"ento:  i<<nuevo[ele"ento ; <Ele"ento ="allo)<siHeo<Ele"ento===;;NULL=  return 1:  i<<nuevo[ele"ento6dato ; <)5ar ="allo)<(0siHeo<)5ar===;;NULL=  return 1:  str)p+<nuevo[ele"ento6dato9dato=: 

a)tual6si!uiente ; nuevo[ele"ento:  nuevo[ele"ento6si!uiente ; NULL: 

lista6n ; nuevo[ele"ento:  lista6ta"anoBB:  return 0: Gnser)ion en otra parte <= de la listaint Gnser)ionLista<Lista lista9 )5ar dato9 int pos=>  i<lista6ta"ano 4'=  return 1:  i<pos41 pos 6;1=  return 1:  Ele"ento a)tual:  Ele"ento nuevo[ele"ento:  int i:

  i<<nuevo[ele"ento;<Ele"ento ="allo)<siHeo<Ele"ento===;;NULL=  return 1:  i<<nuevo[ele"ento6dato;<)5ar ="allo)<(0siHeo<)5ar===;;NULL=  return 1: 

a)tual ; a)tual6si!uiente:  or<i ; 1: i4pos: BBi =  a)tual;a)tual6si!uiente:  i<a)tual6si!uiente ;; NULL=  return 1:  str)p+<nuevo[ele"ento6dato9 dato=:

Page 10: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 10/11

PRESENTADO POR JUAN CARLOS PEREZ MORA 

nuevo[ele"ento6si!uiente;a)tual6si!uiente:  a)tual6si!uiente ; nuevo[ele"ento:  lista6ta"anoBB:  return 0: Eli"inar en el ini)io de la listaint Eli"inarGni)io<Lista lista=>  i<lista6ta"ano ;; 0=  return 1:  Ele"ento sup[ele"ento:  sup[ele"ento ; lista6ini)io:  lista6ini)io;lista6ini)io6si!uiente:  i<lista6ta"ano;;1=  lista6n ; NULL:  ree<sup[ele"ento6dato=:  ree<sup[ele"ento=:  lista6ta"ano:  return 0: Eli"inar en posi)ion de la listaint Eli"inarEnLista<Lista lista9 int pos=>  i<lista6ta"ano 4; 1 pos 4 1 pos 6; lista6ta"ano=  return 1:  int i:  Ele"ento a)tual:  Ele"ento sup[ele"ento:  a)tual ; lista6ini)io:  or<i;1:i4pos:BBi=  a)tual ; a)tual 6si!uiente:  sup[ele"ento ; a)tual6si!uiente:  a)tual6si!uiente ; a)tual6si!uiente6si!uiente:  i<a)tual6si!uiente;;NULL=  lista6n ; a)tual:  ree<sup[ele"ento6dato=:  ree<sup[ele"ento=:  lista6ta"ano:  return 0: visualiHar lista entera

void visualiHa)ion<Lista lista=>  Ele"ento a)tual:  a)tual ; lista6ini)io:  V5ile<a)tual W; NULL=>  print<?Yp YsFn?9a)tual9a)tual6dato=:  a)tual ; a)tual6si!uiente:    destruir la lista void destruir <Lista lista=>  V5ile <lista6ta"ano 6 0=

Page 11: Taller Estructura de Datos

7/17/2019 Taller Estructura de Datos

http://slidepdf.com/reader/full/taller-estructura-de-datos 11/11

PRESENTADO POR JUAN CARLOS PEREZ MORA  Eli"inarGni)io <lista=: 

int "enu <Lista lista9int =>  int ele))ion:  print<? MENU Fn?=:  i <lista 6ta"ano ;; 0=>  print <?1 a!re!ar el pri"er ele"entoFn?=:  print <?' \uitarFn?=:  else i<lista 6ta"ano ;; 1 ;; 1=>  print <?1 a!re!ar al ini)io de la listaFn?=:  print <?' a!re!ar al nal de la listaFn?=:  print <? a!re!ar al ini)io de la listaFn?=:  print <?/ Destruir la listaFn?=:  print <?2 \uitarFn?=:  else >  print <?1 A!re!ar ele"ento al ini)io de la listaFn?=:  print <?' A!re!ar ele"ento al nal de la listaFn?=:  print <?% A!re!ar ele"ento despu,s de la posi)in indi)adaFn?=:  print <? Eli"inar el ele"ento del ini)io de la listaFn?=:  print <?( Eli"inar el ele"ento despu,s de la posi)in indi)adaFn?=:  print <?/ Destruir la listaFn?=:  print <?2 \uitarFn?=:    print <?FnFnEle!ir ?=:  s)an <?Yd?9 Xele))ion=:  !et)5ar<=:  i<lista6ta"ano ;; 0 XX ele))ion ;; '=  ele))ion ; 2:  return ele))ion: