13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

✐<br />

✐<br />

✐<br />

“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 169 — #207<br />

✐<br />

4.10. Ejercicios<br />

21. <strong>C++</strong> crea automáticam<strong>en</strong>te el equival<strong>en</strong>te de typedef para structs, tal como<br />

ha visto <strong>en</strong> este capítulo. También lo hace para las <strong>en</strong>umeraciones y las uniones.<br />

Escriba un pequeño programa que lo demuestre.<br />

22. Cree una Stack que maneje Stashes. Cada Stash mant<strong>en</strong>drá cinco líneas<br />

proced<strong>en</strong>tes de un fichero. Cree las Stash usando new. Lea un fichero <strong>en</strong> su<br />

Stack, después muéstrelo <strong>en</strong> su forma original extrayéndolo de la Stack.<br />

23. Modifique el Ejercicio 22 de modo que cree una estructura que <strong>en</strong>capsule la<br />

Stack y las Stash. El usuario sólo debería añadir y pedir líneas a través de<br />

sus métodos, pero debajo de la cubierta la estructura usa una Stack(pila) de<br />

Stashes.<br />

24. Cree una struct que mant<strong>en</strong>ga un int y un puntero a otra instancia de la<br />

misma struct. Escriba una función que acepte como parámetro la dirección<br />

de una de estas struct y un int indicando la longitud de la lista que se desea<br />

crear. Esta función creará una cad<strong>en</strong>a completa de estas struct (una lista <strong>en</strong>lazada),<br />

empezando por el argum<strong>en</strong>to (la cabeza de la lista), con cada una apuntando<br />

a la sigui<strong>en</strong>te. Cree las nuevas struct usando new, y ponga la posición<br />

(que número de objeto es) <strong>en</strong> el int. En la última struct de la lista, ponga un<br />

valor cero <strong>en</strong> el puntero para indicar que es el último. Escriba una segunda<br />

función que acepte la cabeza de la lista y la recorra hasta el final, mostrando<br />

los valores del puntero y del int para cada una.<br />

25. Repita el ejercicio 24, pero poni<strong>en</strong>do las funciones d<strong>en</strong>tro de una struct <strong>en</strong><br />

lugar de usar struct y funciones «crudas».<br />

169<br />

✐<br />

✐<br />

✐<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!