Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Llista reorganitzar_out(const T& x) const {
- Llista l, l2;
- if (longitud == 0) return l;
- l.longitud = longitud;
- node_llista* iterador = primer_node;
- while (iterador != nullptr) {
- if (iterador->info <= x) { // CAS 1
- if (l.ultim_node == nullptr) { // si la llista esta buida
- l.ultim_node = new node_llista;
- l.ultim_node->info = iterador->info;
- l.ultim_node->ant = nullptr;
- l.ultim_node->seg = nullptr;
- l.primer_node = l.ultim_node;
- }
- else { // si hi ha elements a la llista
- l.ultim_node->seg = new node_llista;
- (l.ultim_node->seg)->info = iterador->info;
- (l.ultim_node->seg)->seg = nullptr;
- (l.ultim_node->seg)->ant = l.ultim_node;
- l.ultim_node = l.ultim_node->seg;
- }
- l.act = l.ultim_node;
- }
- else { //CAS 2
- if (l2.ultim_node == nullptr) { // si la llista esta buida
- l2.ultim_node = new node_llista;
- l2.ultim_node->info = iterador->info;
- l2.ultim_node->ant = nullptr;
- l2.ultim_node->seg = nullptr;
- l2.primer_node = l2.ultim_node;
- }
- else { // si hi ha elements a la llista
- l2.ultim_node->seg = new node_llista;
- (l2.ultim_node->seg)->info = iterador->info;
- (l2.ultim_node->seg)->seg = nullptr;
- (l2.ultim_node->seg)->ant = l2.ultim_node;
- l2.ultim_node = l2.ultim_node->seg;
- }
- l2.act = l2.primer_node;
- }
- iterador = iterador->seg;
- }
- //concatenem les dos, no poden estar les dos buides
- if (l2.primer_node == nullptr) { //segona llista buida
- l.act = l.ultim_node;
- }
- else if (l.primer_node == nullptr) { //primera llista buida
- l.primer_node = l2.primer_node;
- l.ultim_node = l2.ultim_node;
- l.act = l2.primer_node;
- }
- else { //cap buida
- l.act = l2.primer_node;
- l2.primer_node->ant = l.ultim_node;
- l.ultim_node->seg = l2.primer_node;
- l.ultim_node = l2.ultim_node;
- }
- l2.primer_node = l2.ultim_node = l2.act = nullptr;
- l2.longitud = 0;
- return l;
- }
- /* 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 */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement