Reorganitzar una llista (versió OUT) X89446


Statement
 

pdf   zip   tar

html

Afegiu una operació pública a la classe Llista vista a teoria tal que, donada una llista L i un valor x, copïi i reorganitzi en funció de x els elements de L en una nova llista L’. La llista L’ contindrà els mateixos elements que L i tots aquells que siguin més petits o iguals que x, han d’aparèixer abans que tots els més grans però tot respectant l’ordre que hi havia entre ells a L. Feu servir la següent especificació:

Llista  reorganitzar_out(const T& x) const
/* Pre: cert */
/* Post: el resultat és una llista que conté els mateixos 
elements que el p.i. tal que tots els més petits o iguals 
que x al p.i. precedeixen als més grans que x al p.i. però 
sempre respectant l'ordre que hi havia entre ells al p.i. 
L'element actual de la llista retornada és el primer dels 
més grans que x, si existeix, sinó es situa a la detra del 
tot. El p.i. no es modifica */

Per exemple, si x = 5 i el contingut del p.i. és {9, 27, 3, 14, 1, 5}, el contingut de la nova llista serà {3, 1, 5, 9, 27, 14} i el seu element actual farà referència al 9.


No utilitzeu cap de les operacions primitives de les llistes, a excepció de la constructora buida, i accediu directament als atributs de la classe Llista.

Entrada

L’entrada és una llista en el paràmetre implícit i un valor.

Sortida

La sortida és la llista generada a partir de la reorganització del p.i. en funció del valor donat amb el seu element actual referenciant el primer valor més gran que el valor donat.

Observació

Només s’ha d’enviar un fitxer anomenat program.hh, que no ha de fer cap cout, que contingui la funció amb la capçalera de l’enunciat i qualsevol altra funció auxiliar que cregueu convenient, sense la funció main i sense posar-hi cap include. A l’apartat Public files trobareu els fitxers que us calen per construir la vostra solució.

Information
Author
María Teresa Abad (adaptadora)
Language
Catalan
Official solutions
Unknown.
User solutions
C++