Ordenació MergeSort d'una pila X94160


Statement
 

pdf   zip   main.cc

html

Fes un procediment

template <typename T> void ordena(stack<T> &p);

que ordeni p de petit a gran utilitzant l’algorisme d’ordenació MergeSort adaptat a piles. El tipus T admet una relació d’ordre total, és a dir, tenim una operació de comparació < entre valors de tipus T.

Només s’ha d’enviar el procediment requerit.

Es demana que la solució només treballi amb piles. Per tant no es permet utilitzar altres estructures seqüèncials com vectors, cues o llistes.

En els següents exemples, l’entrada consisteix en vàries línies cadascuna d’elles representant una pila: El nombre d’elements de la pila seguit dels seus valors. La sortida mostra els elements de cadascuna de les piles un cop ordenades.

Public test cases
  • Input

    1 10
    0
    2 10 20
    2 20 10
    3 10 20 30
    3 10 30 20
    3 20 30 10
    3 20 10 30
    3 30 10 20
    3 30 20 10
    4 1 2 3 4
    4 1 2 4 3 
    4 1 3 2 4
    4 1 3 4 2 
    4 1 4 2 3
    4 1 4 3 2 
    4 4 2 3 1
    4 4 2 1 3 
    4 4 3 2 1
    4 4 3 1 2 
    4 4 1 2 3
    4 4 1 3 2 
    4 -4 1 3 -2
    6 4 1 3 2 1 4
    6 4 1 3 2 3 3
    2 0.0331172488308 0.153664419108
    2 -0.0331172488308 -0.153664419108
    

    Output

    10 
    
    10 20 
    10 20 
    10 20 30 
    10 20 30 
    10 20 30 
    10 20 30 
    10 20 30 
    10 20 30 
    1 2 3 4 
    1 2 3 4 
    1 2 3 4 
    1 2 3 4 
    1 2 3 4 
    1 2 3 4 
    1 2 3 4 
    1 2 3 4 
    1 2 3 4 
    1 2 3 4 
    1 2 3 4 
    1 2 3 4 
    -4 -2 1 3 
    1 1 2 3 4 4 
    1 2 3 3 3 4 
    0.0331172 0.153664 
    -0.153664 -0.0331172 
    
  • Information
    Author
    Jordi Esteve
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++