Sapienza Università di Roma
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica

Corso di Fondamenti di Programmazione, edizione dell'a.a. 2009/2010
Canale A-D, docente: Prof.ssa C. Petrioli
Responsabile laboratori: Prof. T. Mancini

Valutazione Homework 4

Questo documento estende il documento relativo alla valutazione complessiva degli Homework 1, 2, 3 relativamente ai soli studenti del canale della Prof.ssa C. Petrioli.

Metodologia di valutazione

Si veda il documento relativo alla valutazione complessiva degli Homework 1, 2, 3.

Punteggi dei singoli casi di test

I punteggi dei casi di test sono i seguenti:

Homework 4 (35 punti)

Caso di test Tipologia di test Punteggio
Test 1 B 2
Test 2 B 3
Test 3 B 3
Test 4 B 3
Test 5 B 3
Test 6 B 3
Test 7 B 3
Test 8 B 4
Test 9 B 2
Test 10 B 3
Test 11 B 2
Test 12 B 4
Totale punti 35

Valutazione Homework 4

Nella tabella seguente si riporta la valutazione degli studenti che hanno consegnato Homework 4.

Per evitare errori (sempre possibili) gli studenti sono invitati a controllare, il più presto possibile, l'esattezza dei dati qui riportati, eseguendo il loro programma con l'input dei diversi casi di test, riportati in calce, e confrondando gli output con quelli attesi.

In caso di difformità si prega di contattare il Prof. Toni Mancini per una verifica più approfondita.

Punteggio base Studente Test 1 Test 2 Test 3 Test 4 Test 5 Test 6 Test 7 Test 8 Test 9 Test 10 Test 11 Test 12
27 AndreaBenedetti 1 1 1 1 1 1 1 0 1 1 1 0
25 FiorenzoAdornetto 1 0 1 1 0 1 1 1 1 1 1 0
16 LuigiTiburzi 1 0 1 1 0 1 1 0 0 0 1 0
25 LuisaDiDionisio 1 1 1 0 1 1 0 0 1 1 1 1
12 MaurantonioCaprolu 1 0 0 1 0 0 0 0 1 1 1 0
22 MaurizioFrisco 1 1 1 1 0 0 0 0 1 1 1 1
4 OrazioLaPira 1 0 0 0 0 0 0 0 1 0 0 0
0 ValentinaCucurachi 0 0 0 0 0 0 0 0 0 0 0 0

Casi di test utilizzati

Test 1

Input

crea li come lista di int
stampa li
crea pi come pila di int
stampa pi
crea ci come coda di int
stampa ci

crea lc come lista di char
stampa lc

crea pc come pila di char
stampa pc
crea cc come coda di char
stampa cc

crea ls come lista di char*
stampa ls
crea ps come pila di char*
stampa ps
crea cs come coda di char*
stampa cs




crea li come lista di int
stampa li
crea pi come pila di int
stampa pi
crea ci come coda di int
stampa ci

crea lc come lista di char
stampa lc
crea pc come pila di char
stampa pc
crea cc come coda di char
stampa cc

crea ls come lista di char*
stampa ls
crea ps come pila di char*
stampa ps
crea cs come coda di char*
stampa cs



distruggi li
stampa li
distruggi pi
stampa pi
distruggi ci
stampa ci

distruggi lc
stampa lc
distruggi pc
stampa pc
distruggi cc
stampa cc

distruggi ls
stampa ls
distruggi ps
stampa ps
distruggi cs
stampa cs

esci

Output atteso

>>li (lista di int): NULL
>>pi (pila di int): NULL
>>ci (coda di int): NULL
>>lc (lista di char): NULL
>>pc (pila di char): NULL
>>cc (coda di char): NULL
>>ls (lista di char*): NULL
>>ps (pila di char*): NULL
>>cs (coda di char*): NULL
>>Errore: impossibile creare li
>>li (lista di int): NULL
>>Errore: impossibile creare pi
>>pi (pila di int): NULL
>>Errore: impossibile creare ci
>>ci (coda di int): NULL
>>Errore: impossibile creare lc
>>lc (lista di char): NULL
>>Errore: impossibile creare pc
>>pc (pila di char): NULL
>>Errore: impossibile creare cc
>>cc (coda di char): NULL
>>Errore: impossibile creare ls
>>ls (lista di char*): NULL
>>Errore: impossibile creare ps
>>ps (pila di char*): NULL
>>Errore: impossibile creare cs
>>cs (coda di char*): NULL
>>Errore: li non esiste
>>Errore: pi non esiste
>>Errore: ci non esiste
>>Errore: lc non esiste
>>Errore: pc non esiste
>>Errore: cc non esiste
>>Errore: ls non esiste
>>Errore: ps non esiste
>>Errore: cs non esiste
>>Arrivederci!

Test 2

Input

crea li come lista di int
stampa li
crea pi come pila di int
stampa pi
crea ci come coda di int
stampa ci


aggiungi a li il valore 2 in testa
aggiungi a li il valore 1 in posizione 0
aggiungi a li il valore 4
aggiungi a li il valore 3 in posizione 2
aggiungi a li il valore 11 prima di 2
aggiungi a li il valore 11 dopo 3
aggiungi a li il valore 12 dopo 11
aggiungi a li il valore 90 in posizione 21
aggiungi a li il valore -1 in posizione -2
stampa li

aggiungi a pi il valore -200
aggiungi a pi il valore -100 in testa
aggiungi a pi il valore 1 in coda
aggiungi a pi il valore 2 in posizione 1
stampa pi

aggiungi a ci il valore 1
aggiungi a ci il valore -1 in testa
aggiungi a ci il valore 2 in coda
stampa ci

aggiungi a li tutti gli elementi di ci
stampa li

aggiungi a pi tutti gli elementi di li
stampa pi

aggiungi a ci tutti gli elementi di pi
stampa ci


esci

Output atteso

>>li (lista di int): NULL
>>pi (pila di int): NULL
>>ci (coda di int): NULL
>>li (lista di int): -1 -> 1 -> 11 -> 12 -> 2 -> 3 -> 11 -> 4 -> 90 -> NULL
>>Errore: operazione non permessa su pi
>>Errore: operazione non permessa su pi
>>pi (pila di int): -100 -> -200 -> NULL
>>Errore: operazione non permessa su ci
>>ci (coda di int): 1 -> 2 -> NULL
>>li (lista di int): -1 -> 1 -> 11 -> 12 -> 2 -> 3 -> 11 -> 4 -> 90 -> 1 -> 2 -> NULL
>>pi (pila di int): 2 -> 1 -> 90 -> 4 -> 11 -> 3 -> 2 -> 12 -> 11 -> 1 -> -1 -> -100 -> -200 -> NULL
>>ci (coda di int): 1 -> 2 -> 2 -> 1 -> 90 -> 4 -> 11 -> 3 -> 2 -> 12 -> 11 -> 1 -> -1 -> -100 -> -200 -> NULL
>>Arrivederci!

Test 3

Input

crea lc come lista di char
stampa lc
crea pc come pila di char
stampa pc
crea cc come coda di char
stampa cc


aggiungi a lc il valore b in testa
aggiungi a lc il valore a in posizione 0
aggiungi a lc il valore d
aggiungi a lc il valore c in posizione 2
aggiungi a lc il valore W prima di b
aggiungi a lc il valore W dopo c
aggiungi a lc il valore X dopo W
aggiungi a lc il valore Z in posizione 21
aggiungi a lc il valore ? in posizione -2
stampa lc

aggiungi a pc il valore S
aggiungi a pc il valore R in testa
aggiungi a pc il valore Z in coda
aggiungi a pc il valore B in posizione 1
stampa pc

aggiungi a cc il valore a
aggiungi a cc il valore ! in testa
aggiungi a cc il valore b in coda
stampa cc

aggiungi a lc tutti gli elementi di cc
stampa lc

aggiungi a pc tutti gli elementi di lc
stampa pc

aggiungi a cc tutti gli elementi di pc
stampa cc


esci

Output atteso

>>lc (lista di char): NULL
>>pc (pila di char): NULL
>>cc (coda di char): NULL
>>lc (lista di char): ? -> a -> W -> X -> b -> c -> W -> d -> Z -> NULL
>>Errore: operazione non permessa su pc
>>Errore: operazione non permessa su pc
>>pc (pila di char): R -> S -> NULL
>>Errore: operazione non permessa su cc
>>cc (coda di char): a -> b -> NULL
>>lc (lista di char): ? -> a -> W -> X -> b -> c -> W -> d -> Z -> a -> b -> NULL
>>pc (pila di char): b -> a -> Z -> d -> W -> c -> b -> X -> W -> a -> ? -> R -> S -> NULL
>>cc (coda di char): a -> b -> b -> a -> Z -> d -> W -> c -> b -> X -> W -> a -> ? -> R -> S -> NULL
>>Arrivederci!

Test 4

Input

crea ls come lista di char*
stampa ls
crea ps come pila di char*
stampa ps
crea cs come coda di char*
stampa cs


aggiungi a ls il valore "bbb" in testa
aggiungi a ls il valore "aaa aaa" in posizione 0
aggiungi a ls il valore "dd DDD"
aggiungi a ls il valore "ccccc" in posizione 2
aggiungi a ls il valore "WW WWWW" prima di "bbb"
aggiungi a ls il valore "WW WWWW" dopo "ccccc"
aggiungi a ls il valore "XXX" dopo "WW WWWW"
aggiungi a ls il valore "ZZ" in posizione 21
aggiungi a ls il valore "?" in posizione -2
stampa ls


aggiungi a ps il valore "S S"
aggiungi a ps il valore "R R" in testa
aggiungi a ps il valore "Z Z" in coda
aggiungi a ps il valore "B B" in posizione 1
stampa ps

aggiungi a cs il valore "a aaa"
aggiungi a cs il valore "!!! !!!" in testa
aggiungi a cs il valore "bbb BBB" in coda
stampa cs


aggiungi a ls tutti gli elementi di cs
stampa ls

aggiungi a ps tutti gli elementi di ls
stampa ps

aggiungi a cs tutti gli elementi di ps
stampa cs

esci

Output atteso

>>ls (lista di char*): NULL
>>ps (pila di char*): NULL
>>cs (coda di char*): NULL
>>ls (lista di char*): "?" -> "aaa aaa" -> "WW WWWW" -> "XXX" -> "bbb" -> "ccccc" -> "WW WWWW" -> "dd DDD" -> "ZZ" -> NULL
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>ps (pila di char*): "R R" -> "S S" -> NULL
>>Errore: operazione non permessa su cs
>>cs (coda di char*): "a aaa" -> "bbb BBB" -> NULL
>>ls (lista di char*): "?" -> "aaa aaa" -> "WW WWWW" -> "XXX" -> "bbb" -> "ccccc" -> "WW WWWW" -> "dd DDD" -> "ZZ" -> "a aaa" -> "bbb BBB" -> NULL
>>ps (pila di char*): "bbb BBB" -> "a aaa" -> "ZZ" -> "dd DDD" -> "WW WWWW" -> "ccccc" -> "bbb" -> "XXX" -> "WW WWWW" -> "aaa aaa" -> "?" -> "R R" -> "S S" -> NULL
>>cs (coda di char*): "a aaa" -> "bbb BBB" -> "bbb BBB" -> "a aaa" -> "ZZ" -> "dd DDD" -> "WW WWWW" -> "ccccc" -> "bbb" -> "XXX" -> "WW WWWW" -> "aaa aaa" -> "?" -> "R R" -> "S S" -> NULL
>>Arrivederci!

Test 5

Input

crea li come lista di int
stampa li
crea pi come pila di int
stampa pi
crea ci come coda di int
stampa ci


aggiungi a li il valore 2 in testa
aggiungi a li il valore 1 in posizione 0
aggiungi a li il valore 4
aggiungi a li il valore 3 in posizione 2
aggiungi a li il valore 11 prima di 2
aggiungi a li il valore 11 dopo 3
aggiungi a li il valore 12 dopo 11
aggiungi a li il valore 90 in posizione 21
aggiungi a li il valore -1 in posizione -2
stampa li

aggiungi a li il valore 2
aggiungi a li il valore -1
aggiungi a li il valore 2
stampa li

elimina da li l'occorrenza numero 2 del valore 90
stampa li
elimina da li l'occorrenza numero 2 del valore 2
stampa li
elimina da li il primo elemento
stampa li
elimina da li l'ultimo elemento
stampa li
elimina da li l'elemento in posizione 0
stampa li
elimina da li l'elemento in posizione 2
stampa li
elimina da li l'occorrenza numero 1 del valore 11
stampa li
aggiungi a li il valore 90 in testa
aggiungi a li il valore 90 in coda
elimina da li tutte le occorrenze del valore 90
stampa li

crea li2 come lista di int
aggiungi a li2 il valore 11
aggiungi a li2 il valore 3
elimina da li tutti gli elementi di li2
stampa li

aggiungi a li2 il valore -1
elimina da li tutti gli elementi tranne quelli di li2
stampa li



aggiungi a pi il valore -200
aggiungi a pi il valore -100 in testa
aggiungi a pi il valore -300
stampa pi

aggiungi a pi il valore 1 in coda
aggiungi a pi il valore 2 in posizione 1
stampa pi

elimina da pi il primo elemento
stampa pi

elimina da pi l'ultimo elemento
stampa pi
elimina da pi l'elemento in posizione 1

stampa pi


elimina da pi l'elemento in posizione 0
stampa pi



stampa li
aggiungi a li il valore 0
stampa li
aggiungi a pi tutti gli elementi di li
stampa pi



elimina da pi l'occorrenza numero 1 del valore 11
elimina da pi tutte le occorrenze del valore 90
elimina da pi tutti gli elementi di li2
elimina da pi tutti gli elementi tranne quelli di li2
stampa pi




aggiungi a ci il valore 1
stampa ci
aggiungi a ci il valore -1 in testa
stampa ci
aggiungi a ci il valore 2 in coda
stampa ci

elimina da ci l'elemento in posizione 1
stampa ci

elimina da ci il primo elemento
stampa ci

elimina da ci l'ultimo elemento
stampa ci

elimina da ci l'elemento in posizione 0
stampa ci


elimina da ci l'occorrenza numero 1 del valore 11
elimina da ci tutte le occorrenze del valore 90
elimina da ci tutti gli elementi di li2
elimina da ci tutti gli elementi tranne quelli di li2
stampa ci

esci

Output atteso

>>li (lista di int): NULL
>>pi (pila di int): NULL
>>ci (coda di int): NULL
>>li (lista di int): -1 -> 1 -> 11 -> 12 -> 2 -> 3 -> 11 -> 4 -> 90 -> NULL
>>li (lista di int): -1 -> 1 -> 11 -> 12 -> 2 -> 3 -> 11 -> 4 -> 90 -> 2 -> -1 -> 2 -> NULL
>>li (lista di int): -1 -> 1 -> 11 -> 12 -> 2 -> 3 -> 11 -> 4 -> 90 -> 2 -> -1 -> 2 -> NULL
>>li (lista di int): -1 -> 1 -> 11 -> 12 -> 2 -> 3 -> 11 -> 4 -> 90 -> -1 -> 2 -> NULL
>>li (lista di int): 1 -> 11 -> 12 -> 2 -> 3 -> 11 -> 4 -> 90 -> -1 -> 2 -> NULL
>>li (lista di int): 1 -> 11 -> 12 -> 2 -> 3 -> 11 -> 4 -> 90 -> -1 -> NULL
>>li (lista di int): 11 -> 12 -> 2 -> 3 -> 11 -> 4 -> 90 -> -1 -> NULL
>>li (lista di int): 11 -> 12 -> 3 -> 11 -> 4 -> 90 -> -1 -> NULL
>>li (lista di int): 12 -> 3 -> 11 -> 4 -> 90 -> -1 -> NULL
>>li (lista di int): 12 -> 3 -> 11 -> 4 -> -1 -> NULL
>>li (lista di int): 12 -> 4 -> -1 -> NULL
>>li (lista di int): -1 -> NULL
>>pi (pila di int): -300 -> -100 -> -200 -> NULL
>>Errore: operazione non permessa su pi
>>Errore: operazione non permessa su pi
>>pi (pila di int): -300 -> -100 -> -200 -> NULL
>>pi (pila di int): -100 -> -200 -> NULL
>>Errore: operazione non permessa su pi
>>pi (pila di int): -100 -> -200 -> NULL
>>Errore: operazione non permessa su pi
>>pi (pila di int): -100 -> -200 -> NULL
>>pi (pila di int): -200 -> NULL
>>li (lista di int): -1 -> NULL
>>li (lista di int): -1 -> 0 -> NULL
>>pi (pila di int): 0 -> -1 -> -200 -> NULL
>>Errore: operazione non permessa su pi
>>Errore: operazione non permessa su pi
>>Errore: operazione non permessa su pi
>>Errore: operazione non permessa su pi
>>pi (pila di int): 0 -> -1 -> -200 -> NULL
>>ci (coda di int): 1 -> NULL
>>Errore: operazione non permessa su ci
>>ci (coda di int): 1 -> NULL
>>ci (coda di int): 1 -> 2 -> NULL
>>Errore: operazione non permessa su ci
>>ci (coda di int): 1 -> 2 -> NULL
>>ci (coda di int): 2 -> NULL
>>Errore: operazione non permessa su ci
>>ci (coda di int): 2 -> NULL
>>ci (coda di int): NULL
>>Errore: operazione non permessa su ci
>>Errore: operazione non permessa su ci
>>Errore: operazione non permessa su ci
>>Errore: operazione non permessa su ci
>>ci (coda di int): NULL
>>Arrivederci!

Test 6

Input

crea lc come lista di char
stampa lc
crea pc come pila di char
stampa pc
crea cc come coda di char
stampa cc


aggiungi a lc il valore b in testa
aggiungi a lc il valore a in posizione 0
aggiungi a lc il valore d
aggiungi a lc il valore c in posizione 2
aggiungi a lc il valore k prima di b
aggiungi a lc il valore k dopo c
aggiungi a lc il valore l dopo k
aggiungi a lc il valore z in posizione 21
aggiungi a lc il valore ? in posizione -2
stampa lc

aggiungi a lc il valore b
aggiungi a lc il valore ?
aggiungi a lc il valore b
stampa lc

elimina da lc l'occorrenza numero 2 del valore z
stampa lc
elimina da lc l'occorrenza numero 2 del valore b
stampa lc

elimina da lc il primo elemento
stampa lc
elimina da lc l'ultimo elemento
stampa lc

elimina da lc l'elemento in posizione 0
stampa lc
elimina da lc l'elemento in posizione 2
stampa lc

elimina da lc l'occorrenza numero 1 del valore k
stampa lc

aggiungi a lc il valore z in testa
aggiungi a lc il valore z in coda
stampa lc

elimina da lc tutte le occorrenze del valore z
stampa lc


crea li2 come lista di char
aggiungi a li2 il valore k
aggiungi a li2 il valore c
stampa li2
elimina da lc tutti gli elementi di li2
stampa lc

aggiungi a li2 il valore ?
elimina da lc tutti gli elementi tranne quelli di li2
stampa lc

aggiungi a pc il valore B
aggiungi a pc il valore A in testa
stampa pc

aggiungi a pc il valore a in coda
aggiungi a pc il valore b in posizione 1
stampa pc

elimina da pc l'elemento in posizione 1
stampa pc

elimina da pc il primo elemento
stampa pc

elimina da pc l'ultimo elemento
stampa pc

elimina da pc l'elemento in posizione 0
stampa pc




stampa lc
aggiungi a lc il valore $
stampa lc
aggiungi a pc tutti gli elementi di lc
stampa pc


elimina da pc l'occorrenza numero 1 del valore k
elimina da pc tutte le occorrenze del valore z
elimina da pc tutti gli elementi di li2
elimina da pc tutti gli elementi tranne quelli di li2
stampa pc





aggiungi a cc il valore a
stampa cc
aggiungi a cc il valore ? in testa
stampa cc
aggiungi a cc il valore b in coda
stampa cc

elimina da cc l'elemento in posizione 1
stampa cc

elimina da cc il primo elemento
stampa cc

elimina da cc l'ultimo elemento
stampa cc

elimina da cc l'elemento in posizione 0
stampa cc

elimina da cc l'occorrenza numero 1 del valore k
elimina da cc tutte le occorrenze del valore z
elimina da cc tutti gli elementi di li2
elimina da cc tutti gli elementi tranne quelli di li2
stampa cc

esci

Output atteso

>>lc (lista di char): NULL
>>pc (pila di char): NULL
>>cc (coda di char): NULL
>>lc (lista di char): ? -> a -> k -> l -> b -> c -> k -> d -> z -> NULL
>>lc (lista di char): ? -> a -> k -> l -> b -> c -> k -> d -> z -> b -> ? -> b -> NULL
>>lc (lista di char): ? -> a -> k -> l -> b -> c -> k -> d -> z -> b -> ? -> b -> NULL
>>lc (lista di char): ? -> a -> k -> l -> b -> c -> k -> d -> z -> ? -> b -> NULL
>>lc (lista di char): a -> k -> l -> b -> c -> k -> d -> z -> ? -> b -> NULL
>>lc (lista di char): a -> k -> l -> b -> c -> k -> d -> z -> ? -> NULL
>>lc (lista di char): k -> l -> b -> c -> k -> d -> z -> ? -> NULL
>>lc (lista di char): k -> l -> c -> k -> d -> z -> ? -> NULL
>>lc (lista di char): l -> c -> k -> d -> z -> ? -> NULL
>>lc (lista di char): z -> l -> c -> k -> d -> z -> ? -> z -> NULL
>>lc (lista di char): l -> c -> k -> d -> ? -> NULL
>>li2 (lista di char): k -> c -> NULL
>>lc (lista di char): l -> d -> ? -> NULL
>>lc (lista di char): ? -> NULL
>>pc (pila di char): A -> B -> NULL
>>Errore: operazione non permessa su pc
>>Errore: operazione non permessa su pc
>>pc (pila di char): A -> B -> NULL
>>Errore: operazione non permessa su pc
>>pc (pila di char): A -> B -> NULL
>>pc (pila di char): B -> NULL
>>Errore: operazione non permessa su pc
>>pc (pila di char): B -> NULL
>>pc (pila di char): NULL
>>lc (lista di char): ? -> NULL
>>lc (lista di char): ? -> $ -> NULL
>>pc (pila di char): $ -> ? -> NULL
>>Errore: operazione non permessa su pc
>>Errore: operazione non permessa su pc
>>Errore: operazione non permessa su pc
>>Errore: operazione non permessa su pc
>>pc (pila di char): $ -> ? -> NULL
>>cc (coda di char): a -> NULL
>>Errore: operazione non permessa su cc
>>cc (coda di char): a -> NULL
>>cc (coda di char): a -> b -> NULL
>>Errore: operazione non permessa su cc
>>cc (coda di char): a -> b -> NULL
>>cc (coda di char): b -> NULL
>>Errore: operazione non permessa su cc
>>cc (coda di char): b -> NULL
>>cc (coda di char): NULL
>>Errore: operazione non permessa su cc
>>Errore: operazione non permessa su cc
>>Errore: operazione non permessa su cc
>>Errore: operazione non permessa su cc
>>cc (coda di char): NULL
>>Arrivederci!

Test 7

Input

crea ls come lista di char*
stampa ls
crea ps come pila di char*
stampa ps
crea cs come coda di char*
stampa cs


aggiungi a ls il valore "bb bb" in testa
aggiungi a ls il valore "aa aa" in posizione 0
aggiungi a ls il valore "dd dd"
aggiungi a ls il valore "cc cc" in posizione 2
aggiungi a ls il valore "kk kk" prima di "bb bb"
aggiungi a ls il valore "kk kk" dopo "cc cc"

aggiungi a ls il valore "ll ll" dopo "kk kk"
aggiungi a ls il valore "zz zz" in posizione 21
aggiungi a ls il valore "?? ??" in posizione -2
stampa ls

aggiungi a ls il valore "bb bb"
aggiungi a ls il valore "?? ??"
aggiungi a ls il valore "bb bb"
stampa ls

elimina da ls l'occorrenza numero 2 del valore "zz zz"
stampa ls

elimina da ls l'occorrenza numero 2 del valore "bb bb"
stampa ls

elimina da ls il primo elemento
stampa ls
elimina da ls l'ultimo elemento
stampa ls

elimina da ls l'elemento in posizione 0
stampa ls

elimina da ls l'elemento in posizione 2
stampa ls

elimina da ls l'occorrenza numero 1 del valore "kk kk"
stampa ls

aggiungi a ls il valore "zz zz" in testa
aggiungi a ls il valore "zz zz" in coda
stampa ls

elimina da ls tutte le occorrenze del valore "zz zz"
stampa ls

crea ls2 come lista di char*
aggiungi a ls2 il valore "kk kk"
aggiungi a ls2 il valore "cc cc"
stampa ls2

elimina da ls tutti gli elementi di ls2
stampa ls

aggiungi a ls2 il valore "?? ??"
elimina da ls tutti gli elementi tranne quelli di ls2
stampa ls

aggiungi a ps il valore "bb bb"
aggiungi a ps il valore "aa aa" in testa
stampa ps

aggiungi a ps il valore "aa aa" in coda

aggiungi a ps il valore "bb bb" in posizione 1
stampa ps

elimina da ps l'elemento in posizione 1
stampa ps

elimina da ps il primo elemento
stampa ps

elimina da ps l'ultimo elemento
stampa ps

elimina da ps l'elemento in posizione 0
stampa ps

stampa ls
aggiungi a ls il valore "$"
stampa ls

aggiungi a ps tutti gli elementi di ls
stampa ps

elimina da ps l'occorrenza numero 1 del valore "kk kk"
elimina da ps tutte le occorrenze del valore "zz zz"
elimina da ps tutti gli elementi di ls2
elimina da ps tutti gli elementi tranne quelli di ls2
stampa ps


aggiungi a cs il valore "aa aa"
stampa cs
aggiungi a cs il valore "?? ??" in testa
stampa cs
aggiungi a cs il valore "bb bb" in coda
stampa cs

elimina da cs l'elemento in posizione 1
stampa cs

elimina da cs il primo elemento
stampa cs

elimina da cs l'ultimo elemento
stampa cs

elimina da cs l'elemento in posizione 0
stampa cs

elimina da cs l'occorrenza numero 1 del valore "kk kk"
elimina da cs tutte le occorrenze del valore "zz zz"
elimina da cs tutti gli elementi di ls2
elimina da cs tutti gli elementi tranne quelli di ls2
stampa cs

esci

Output atteso

>>ls (lista di char*): NULL
>>ps (pila di char*): NULL
>>cs (coda di char*): NULL
>>ls (lista di char*): "?? ??" -> "aa aa" -> "kk kk" -> "ll ll" -> "bb bb" -> "cc cc" -> "kk kk" -> "dd dd" -> "zz zz" -> NULL
>>ls (lista di char*): "?? ??" -> "aa aa" -> "kk kk" -> "ll ll" -> "bb bb" -> "cc cc" -> "kk kk" -> "dd dd" -> "zz zz" -> "bb bb" -> "?? ??" -> "bb bb" -> NULL
>>ls (lista di char*): "?? ??" -> "aa aa" -> "kk kk" -> "ll ll" -> "bb bb" -> "cc cc" -> "kk kk" -> "dd dd" -> "zz zz" -> "bb bb" -> "?? ??" -> "bb bb" -> NULL
>>ls (lista di char*): "?? ??" -> "aa aa" -> "kk kk" -> "ll ll" -> "bb bb" -> "cc cc" -> "kk kk" -> "dd dd" -> "zz zz" -> "?? ??" -> "bb bb" -> NULL
>>ls (lista di char*): "aa aa" -> "kk kk" -> "ll ll" -> "bb bb" -> "cc cc" -> "kk kk" -> "dd dd" -> "zz zz" -> "?? ??" -> "bb bb" -> NULL
>>ls (lista di char*): "aa aa" -> "kk kk" -> "ll ll" -> "bb bb" -> "cc cc" -> "kk kk" -> "dd dd" -> "zz zz" -> "?? ??" -> NULL
>>ls (lista di char*): "kk kk" -> "ll ll" -> "bb bb" -> "cc cc" -> "kk kk" -> "dd dd" -> "zz zz" -> "?? ??" -> NULL
>>ls (lista di char*): "kk kk" -> "ll ll" -> "cc cc" -> "kk kk" -> "dd dd" -> "zz zz" -> "?? ??" -> NULL
>>ls (lista di char*): "ll ll" -> "cc cc" -> "kk kk" -> "dd dd" -> "zz zz" -> "?? ??" -> NULL
>>ls (lista di char*): "zz zz" -> "ll ll" -> "cc cc" -> "kk kk" -> "dd dd" -> "zz zz" -> "?? ??" -> "zz zz" -> NULL
>>ls (lista di char*): "ll ll" -> "cc cc" -> "kk kk" -> "dd dd" -> "?? ??" -> NULL
>>ls2 (lista di char*): "kk kk" -> "cc cc" -> NULL
>>ls (lista di char*): "ll ll" -> "dd dd" -> "?? ??" -> NULL
>>ls (lista di char*): "?? ??" -> NULL
>>ps (pila di char*): "aa aa" -> "bb bb" -> NULL
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>ps (pila di char*): "aa aa" -> "bb bb" -> NULL
>>Errore: operazione non permessa su ps
>>ps (pila di char*): "aa aa" -> "bb bb" -> NULL
>>ps (pila di char*): "bb bb" -> NULL
>>Errore: operazione non permessa su ps
>>ps (pila di char*): "bb bb" -> NULL
>>ps (pila di char*): NULL
>>ls (lista di char*): "?? ??" -> NULL
>>ls (lista di char*): "?? ??" -> "$" -> NULL
>>ps (pila di char*): "$" -> "?? ??" -> NULL
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>ps (pila di char*): "$" -> "?? ??" -> NULL
>>cs (coda di char*): "aa aa" -> NULL
>>Errore: operazione non permessa su cs
>>cs (coda di char*): "aa aa" -> NULL
>>cs (coda di char*): "aa aa" -> "bb bb" -> NULL
>>Errore: operazione non permessa su cs
>>cs (coda di char*): "aa aa" -> "bb bb" -> NULL
>>cs (coda di char*): "bb bb" -> NULL
>>Errore: operazione non permessa su cs
>>cs (coda di char*): "bb bb" -> NULL
>>cs (coda di char*): NULL
>>Errore: operazione non permessa su cs
>>Errore: operazione non permessa su cs
>>Errore: operazione non permessa su cs
>>Errore: operazione non permessa su cs
>>cs (coda di char*): NULL
>>Arrivederci!

Test 8

Input

crea ls come lista di char*
stampa ls
crea ps come pila di char*
stampa ps
crea cs come coda di char*
stampa cs


aggiungi a ls il valore " bb bb " in testa
aggiungi a ls il valore " aa aa " in posizione 0
aggiungi a ls il valore " dd dd "
aggiungi a ls il valore " cc cc " in posizione 2
aggiungi a ls il valore " kk kk " prima di " bb bb "
aggiungi a ls il valore " kk kk " dopo " cc cc "

aggiungi a ls il valore " ll ll " dopo " kk kk "
aggiungi a ls il valore " zz zz " in posizione 21
aggiungi a ls il valore " ?? ?? " in posizione -2
stampa ls

aggiungi a ls il valore " bb bb "
aggiungi a ls il valore " ?? ?? "
aggiungi a ls il valore " bb bb "
stampa ls

elimina da ls l'occorrenza numero 2 del valore " zz zz "
stampa ls

elimina da ls l'occorrenza numero 2 del valore " bb bb "
stampa ls

elimina da ls il primo elemento
stampa ls
elimina da ls l'ultimo elemento
stampa ls

elimina da ls l'elemento in posizione 0
stampa ls

elimina da ls l'elemento in posizione 2
stampa ls

elimina da ls l'occorrenza numero 1 del valore " kk kk "
stampa ls

aggiungi a ls il valore " zz zz " in testa
aggiungi a ls il valore " zz zz " in coda
stampa ls

elimina da ls tutte le occorrenze del valore " zz zz "
stampa ls

crea ls2 come lista di char*
aggiungi a ls2 il valore " kk kk "
aggiungi a ls2 il valore " cc cc "
stampa ls2

elimina da ls tutti gli elementi di ls2
stampa ls

aggiungi a ls2 il valore " ?? ?? "
elimina da ls tutti gli elementi tranne quelli di ls2
stampa ls

aggiungi a ps il valore " bb bb "
aggiungi a ps il valore " aa aa " in testa
stampa ps

aggiungi a ps il valore " aa aa " in coda

aggiungi a ps il valore " bb bb " in posizione 1
stampa ps

elimina da ps l'elemento in posizione 1
stampa ps

elimina da ps il primo elemento
stampa ps

elimina da ps l'ultimo elemento
stampa ps

elimina da ps l'elemento in posizione 0
stampa ps

stampa ls
aggiungi a ls il valore " $ "
stampa ls

aggiungi a ps tutti gli elementi di ls
stampa ps

elimina da ps l'occorrenza numero 1 del valore " kk kk "
elimina da ps tutte le occorrenze del valore " zz zz "
elimina da ps tutti gli elementi di ls2
elimina da ps tutti gli elementi tranne quelli di ls2
stampa ps


aggiungi a cs il valore " aa aa "
stampa cs
aggiungi a cs il valore " ?? ?? " in testa
stampa cs
aggiungi a cs il valore " bb bb " in coda
stampa cs

elimina da cs l'elemento in posizione 1
stampa cs

elimina da cs il primo elemento
stampa cs

elimina da cs l'ultimo elemento
stampa cs

elimina da cs l'elemento in posizione 0
stampa cs

elimina da cs l'occorrenza numero 1 del valore " kk kk "
elimina da cs tutte le occorrenze del valore " zz zz "
elimina da cs tutti gli elementi di ls2
elimina da cs tutti gli elementi tranne quelli di ls2
stampa cs

esci

Output atteso

>>ls (lista di char*): NULL
>>ps (pila di char*): NULL
>>cs (coda di char*): NULL
>>ls (lista di char*): " ?? ?? " -> " aa aa " -> " kk kk " -> " ll ll " -> " bb bb " -> " cc cc " -> " kk kk " -> " dd dd " -> " zz zz " -> NULL
>>ls (lista di char*): " ?? ?? " -> " aa aa " -> " kk kk " -> " ll ll " -> " bb bb " -> " cc cc " -> " kk kk " -> " dd dd " -> " zz zz " -> " bb bb " -> " ?? ?? " -> " bb bb " -> NULL
>>ls (lista di char*): " ?? ?? " -> " aa aa " -> " kk kk " -> " ll ll " -> " bb bb " -> " cc cc " -> " kk kk " -> " dd dd " -> " zz zz " -> " bb bb " -> " ?? ?? " -> " bb bb " -> NULL
>>ls (lista di char*): " ?? ?? " -> " aa aa " -> " kk kk " -> " ll ll " -> " bb bb " -> " cc cc " -> " kk kk " -> " dd dd " -> " zz zz " -> " ?? ?? " -> " bb bb " -> NULL
>>ls (lista di char*): " aa aa " -> " kk kk " -> " ll ll " -> " bb bb " -> " cc cc " -> " kk kk " -> " dd dd " -> " zz zz " -> " ?? ?? " -> " bb bb " -> NULL
>>ls (lista di char*): " aa aa " -> " kk kk " -> " ll ll " -> " bb bb " -> " cc cc " -> " kk kk " -> " dd dd " -> " zz zz " -> " ?? ?? " -> NULL
>>ls (lista di char*): " kk kk " -> " ll ll " -> " bb bb " -> " cc cc " -> " kk kk " -> " dd dd " -> " zz zz " -> " ?? ?? " -> NULL
>>ls (lista di char*): " kk kk " -> " ll ll " -> " cc cc " -> " kk kk " -> " dd dd " -> " zz zz " -> " ?? ?? " -> NULL
>>ls (lista di char*): " ll ll " -> " cc cc " -> " kk kk " -> " dd dd " -> " zz zz " -> " ?? ?? " -> NULL
>>ls (lista di char*): " zz zz " -> " ll ll " -> " cc cc " -> " kk kk " -> " dd dd " -> " zz zz " -> " ?? ?? " -> " zz zz " -> NULL
>>ls (lista di char*): " ll ll " -> " cc cc " -> " kk kk " -> " dd dd " -> " ?? ?? " -> NULL
>>ls2 (lista di char*): " kk kk " -> " cc cc " -> NULL
>>ls (lista di char*): " ll ll " -> " dd dd " -> " ?? ?? " -> NULL
>>ls (lista di char*): " ?? ?? " -> NULL
>>ps (pila di char*): " aa aa " -> " bb bb " -> NULL
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>ps (pila di char*): " aa aa " -> " bb bb " -> NULL
>>Errore: operazione non permessa su ps
>>ps (pila di char*): " aa aa " -> " bb bb " -> NULL
>>ps (pila di char*): " bb bb " -> NULL
>>Errore: operazione non permessa su ps
>>ps (pila di char*): " bb bb " -> NULL
>>ps (pila di char*): NULL
>>ls (lista di char*): " ?? ?? " -> NULL
>>ls (lista di char*): " ?? ?? " -> " $ " -> NULL
>>ps (pila di char*): " $ " -> " ?? ?? " -> NULL
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>ps (pila di char*): " $ " -> " ?? ?? " -> NULL
>>cs (coda di char*): " aa aa " -> NULL
>>Errore: operazione non permessa su cs
>>cs (coda di char*): " aa aa " -> NULL
>>cs (coda di char*): " aa aa " -> " bb bb " -> NULL
>>Errore: operazione non permessa su cs
>>cs (coda di char*): " aa aa " -> " bb bb " -> NULL
>>cs (coda di char*): " bb bb " -> NULL
>>Errore: operazione non permessa su cs
>>cs (coda di char*): " bb bb " -> NULL
>>cs (coda di char*): NULL
>>Errore: operazione non permessa su cs
>>Errore: operazione non permessa su cs
>>Errore: operazione non permessa su cs
>>Errore: operazione non permessa su cs
>>cs (coda di char*): NULL
>>Arrivederci!

Test 9

Input

crea li come lista di int
stampa li
crea pi come pila di int
stampa pi
crea ci come coda di int
stampa ci


aggiungi a li il valore 2
aggiungi a li il valore 1
aggiungi a li il valore 4
aggiungi a li il valore 3
stampa li

aggiungi a pi il valore -200
aggiungi a pi il valore -100
aggiungi a pi il valore 1
aggiungi a pi il valore 2
stampa pi

aggiungi a ci il valore 1
aggiungi a ci il valore -1
aggiungi a ci il valore 2
stampa ci

primo elemento di li
lunghezza di li
primo elemento di pi
lunghezza di pi
primo elemento di ci
lunghezza di ci






crea lc come lista di char
stampa lc
crea pc come pila di char
stampa pc
crea cc come coda di char
stampa cc


aggiungi a lc il valore b
aggiungi a lc il valore a
aggiungi a lc il valore d
aggiungi a lc il valore c
aggiungi a lc il valore W
stampa lc

aggiungi a pc il valore S
aggiungi a pc il valore R
aggiungi a pc il valore Z
aggiungi a pc il valore B
stampa pc

aggiungi a cc il valore a
aggiungi a cc il valore !
aggiungi a cc il valore b
stampa cc


primo elemento di lc
lunghezza di lc
primo elemento di pc
lunghezza di pc
primo elemento di cc
lunghezza di cc




crea ls come lista di char*
stampa ls
crea ps come pila di char*
stampa ps
crea cs come coda di char*
stampa cs


aggiungi a ls il valore "bbb"
aggiungi a ls il valore "aaa aaa"
aggiungi a ls il valore "dd DDD"
aggiungi a ls il valore "ccccc"
stampa ls

aggiungi a ps il valore "S S"
aggiungi a ps il valore "R R"
aggiungi a ps il valore "Z Z"
aggiungi a ps il valore "B B"
stampa ps

aggiungi a cs il valore "a aaa"
aggiungi a cs il valore "!!! !!!"
aggiungi a cs il valore "bbb BBB"
stampa cs

primo elemento di ls
lunghezza di ls
primo elemento di ps
lunghezza di ps
primo elemento di cs
lunghezza di cs



esci

Output atteso

>>li (lista di int): NULL
>>pi (pila di int): NULL
>>ci (coda di int): NULL
>>li (lista di int): 2 -> 1 -> 4 -> 3 -> NULL
>>pi (pila di int): 2 -> 1 -> -100 -> -200 -> NULL
>>ci (coda di int): 1 -> -1 -> 2 -> NULL
>>2
>>4
>>2
>>4
>>1
>>3
>>lc (lista di char): NULL
>>pc (pila di char): NULL
>>cc (coda di char): NULL
>>lc (lista di char): b -> a -> d -> c -> W -> NULL
>>pc (pila di char): B -> Z -> R -> S -> NULL
>>cc (coda di char): a -> ! -> b -> NULL
>>b
>>5
>>B
>>4
>>a
>>3
>>ls (lista di char*): NULL
>>ps (pila di char*): NULL
>>cs (coda di char*): NULL
>>ls (lista di char*): "bbb" -> "aaa aaa" -> "dd DDD" -> "ccccc" -> NULL
>>ps (pila di char*): "B B" -> "Z Z" -> "R R" -> "S S" -> NULL
>>cs (coda di char*): "a aaa" -> "!!! !!!" -> "bbb BBB" -> NULL
>>"bbb"
>>4
>>"B B"
>>4
>>"a aaa"
>>3
>>Arrivederci!

Test 10

Input

crea li come lista di int
stampa li
crea pi come pila di int
stampa pi
crea ci come coda di int
stampa ci


aggiungi a li il valore 2
aggiungi a li il valore 1
aggiungi a li il valore 4
aggiungi a li il valore 3
aggiungi a li il valore 2
aggiungi a li il valore 1
aggiungi a li il valore 4
aggiungi a li il valore 3
stampa li

trova in li la posizione dell'occorrenza numero 2 del valore 4
trova in li la posizione dell'occorrenza numero 1 del valore 1
trova in li la posizione dell'occorrenza numero 2 del valore 10


aggiungi a pi il valore -200
aggiungi a pi il valore -100
aggiungi a pi il valore 1
aggiungi a pi il valore 2
aggiungi a pi il valore -200
aggiungi a pi il valore -100
aggiungi a pi il valore 1
aggiungi a pi il valore 2
stampa pi

trova in pi la posizione dell'occorrenza numero 2 del valore -100
trova in pi la posizione dell'occorrenza numero 1 del valore 1
trova in pi la posizione dell'occorrenza numero 2 del valore 10



aggiungi a ci il valore 1
aggiungi a ci il valore -1
aggiungi a ci il valore 2
aggiungi a ci il valore 1
aggiungi a ci il valore -1
aggiungi a ci il valore 2
stampa ci

trova in ci la posizione dell'occorrenza numero 2 del valore -1
trova in ci la posizione dell'occorrenza numero 1 del valore 1
trova in ci la posizione dell'occorrenza numero 2 del valore 10



crea lc come lista di char
stampa lc
crea pc come pila di char
stampa pc
crea cc come coda di char
stampa cc


aggiungi a lc il valore b
aggiungi a lc il valore a
aggiungi a lc il valore d
aggiungi a lc il valore c
aggiungi a lc il valore W
aggiungi a lc il valore b
aggiungi a lc il valore a
aggiungi a lc il valore d
aggiungi a lc il valore c
aggiungi a lc il valore W
stampa lc

trova in lc la posizione dell'occorrenza numero 2 del valore a
trova in lc la posizione dell'occorrenza numero 1 del valore b
trova in lc la posizione dell'occorrenza numero 2 del valore X



aggiungi a pc il valore S
aggiungi a pc il valore R
aggiungi a pc il valore Z
aggiungi a pc il valore B
aggiungi a pc il valore S
aggiungi a pc il valore R
aggiungi a pc il valore Z
aggiungi a pc il valore B
stampa pc

trova in pc la posizione dell'occorrenza numero 2 del valore R
trova in pc la posizione dell'occorrenza numero 1 del valore S
trova in pc la posizione dell'occorrenza numero 2 del valore X




aggiungi a cc il valore a
aggiungi a cc il valore !
aggiungi a cc il valore b
stampa cc

trova in pc la posizione dell'occorrenza numero 2 del valore R
trova in pc la posizione dell'occorrenza numero 1 del valore S
trova in pc la posizione dell'occorrenza numero 2 del valore X




crea ls come lista di char*
stampa ls
crea ps come pila di char*
stampa ps
crea cs come coda di char*
stampa cs


aggiungi a ls il valore "bbb"
aggiungi a ls il valore "aaa aaa"
aggiungi a ls il valore "dd DDD"
aggiungi a ls il valore "ccccc"
aggiungi a ls il valore "bbb"
aggiungi a ls il valore "aaa aaa"
aggiungi a ls il valore "dd DDD"
aggiungi a ls il valore "ccccc"
stampa ls

trova in ls la posizione dell'occorrenza numero 2 del valore "aaa aaa"
trova in ls la posizione dell'occorrenza numero 1 del valore "bbb"
trova in ls la posizione dell'occorrenza numero 2 del valore "XXX"




aggiungi a ps il valore "S S"
aggiungi a ps il valore "R R"
aggiungi a ps il valore "Z Z"
aggiungi a ps il valore "B B"
stampa ps

trova in ps la posizione dell'occorrenza numero 2 del valore "aaa aaa"
trova in ps la posizione dell'occorrenza numero 1 del valore "bbb"
trova in ps la posizione dell'occorrenza numero 2 del valore "XXX"




aggiungi a cs il valore "a aaa"
aggiungi a cs il valore "!!! !!!"
aggiungi a cs il valore "bbb BBB"
stampa cs

trova in cs la posizione dell'occorrenza numero 2 del valore "aaa aaa"
trova in cs la posizione dell'occorrenza numero 1 del valore "bbb"
trova in cs la posizione dell'occorrenza numero 2 del valore "XXX"


esci

Output atteso

>>li (lista di int): NULL
>>pi (pila di int): NULL
>>ci (coda di int): NULL
>>li (lista di int): 2 -> 1 -> 4 -> 3 -> 2 -> 1 -> 4 -> 3 -> NULL
>>6
>>1
>>NULL
>>pi (pila di int): 2 -> 1 -> -100 -> -200 -> 2 -> 1 -> -100 -> -200 -> NULL
>>Errore: operazione non permessa su pi
>>Errore: operazione non permessa su pi
>>Errore: operazione non permessa su pi
>>ci (coda di int): 1 -> -1 -> 2 -> 1 -> -1 -> 2 -> NULL
>>Errore: operazione non permessa su ci
>>Errore: operazione non permessa su ci
>>Errore: operazione non permessa su ci
>>lc (lista di char): NULL
>>pc (pila di char): NULL
>>cc (coda di char): NULL
>>lc (lista di char): b -> a -> d -> c -> W -> b -> a -> d -> c -> W -> NULL
>>6
>>0
>>NULL
>>pc (pila di char): B -> Z -> R -> S -> B -> Z -> R -> S -> NULL
>>Errore: operazione non permessa su pc
>>Errore: operazione non permessa su pc
>>Errore: operazione non permessa su pc
>>cc (coda di char): a -> ! -> b -> NULL
>>Errore: operazione non permessa su pc
>>Errore: operazione non permessa su pc
>>Errore: operazione non permessa su pc
>>ls (lista di char*): NULL
>>ps (pila di char*): NULL
>>cs (coda di char*): NULL
>>ls (lista di char*): "bbb" -> "aaa aaa" -> "dd DDD" -> "ccccc" -> "bbb" -> "aaa aaa" -> "dd DDD" -> "ccccc" -> NULL
>>5
>>0
>>NULL
>>ps (pila di char*): "B B" -> "Z Z" -> "R R" -> "S S" -> NULL
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>Errore: operazione non permessa su ps
>>cs (coda di char*): "a aaa" -> "!!! !!!" -> "bbb BBB" -> NULL
>>Errore: operazione non permessa su cs
>>Errore: operazione non permessa su cs
>>Errore: operazione non permessa su cs
>>Arrivederci!

Test 11

Input

crea li come lista di int
stampa li


aggiungi a li il valore 2
aggiungi a li il valore 1
aggiungi a li il valore 4
aggiungi a li il valore 3
aggiungi a li il valore 2
aggiungi a li il valore 1
aggiungi a li il valore 4
aggiungi a li il valore 3
stampa li

trasforma li in pila
stampa li
aggiungi a li il valore 0 in coda
stampa li

trasforma li in coda
stampa li
aggiungi a li il valore 0 in coda
stampa li

trasforma li in lista
stampa li
aggiungi a li il valore 0 in posizione 1
stampa li





crea lc come lista di char
stampa lc


aggiungi a lc il valore b
aggiungi a lc il valore a
aggiungi a lc il valore d
aggiungi a lc il valore c
aggiungi a lc il valore b
aggiungi a lc il valore a
aggiungi a lc il valore d
aggiungi a lc il valore c
stampa lc

trasforma lc in pila
stampa lc
aggiungi a lc il valore Z in coda
stampa lc

trasforma lc in coda
stampa lc
aggiungi a lc il valore Z in coda
stampa lc

trasforma lc in lista
stampa lc
aggiungi a lc il valore Z in posizione 1
stampa lc





crea ls come lista di char*
stampa ls


aggiungi a ls il valore "b"
aggiungi a ls il valore "a"
aggiungi a ls il valore "d"
aggiungi a ls il valore "c"
aggiungi a ls il valore "b"
aggiungi a ls il valore "a"
aggiungi a ls il valore "d"
aggiungi a ls il valore "c"
stampa ls

trasforma ls in pila
stampa ls
aggiungi a ls il valore "Z" in coda
stampa ls

trasforma ls in coda
stampa ls
aggiungi a ls il valore "Z" in coda
stampa ls

trasforma ls in lista
stampa ls
aggiungi a ls il valore "Z" in posizione 1
stampa ls


esci

Output atteso

>>li (lista di int): NULL
>>li (lista di int): 2 -> 1 -> 4 -> 3 -> 2 -> 1 -> 4 -> 3 -> NULL
>>li (pila di int): 2 -> 1 -> 4 -> 3 -> 2 -> 1 -> 4 -> 3 -> NULL
>>Errore: operazione non permessa su li
>>li (pila di int): 2 -> 1 -> 4 -> 3 -> 2 -> 1 -> 4 -> 3 -> NULL
>>li (coda di int): 2 -> 1 -> 4 -> 3 -> 2 -> 1 -> 4 -> 3 -> NULL
>>li (coda di int): 2 -> 1 -> 4 -> 3 -> 2 -> 1 -> 4 -> 3 -> 0 -> NULL
>>li (lista di int): 2 -> 1 -> 4 -> 3 -> 2 -> 1 -> 4 -> 3 -> 0 -> NULL
>>li (lista di int): 2 -> 0 -> 1 -> 4 -> 3 -> 2 -> 1 -> 4 -> 3 -> 0 -> NULL
>>lc (lista di char): NULL
>>lc (lista di char): b -> a -> d -> c -> b -> a -> d -> c -> NULL
>>lc (pila di char): b -> a -> d -> c -> b -> a -> d -> c -> NULL
>>Errore: operazione non permessa su lc
>>lc (pila di char): b -> a -> d -> c -> b -> a -> d -> c -> NULL
>>lc (coda di char): b -> a -> d -> c -> b -> a -> d -> c -> NULL
>>lc (coda di char): b -> a -> d -> c -> b -> a -> d -> c -> Z -> NULL
>>lc (lista di char): b -> a -> d -> c -> b -> a -> d -> c -> Z -> NULL
>>lc (lista di char): b -> Z -> a -> d -> c -> b -> a -> d -> c -> Z -> NULL
>>ls (lista di char*): NULL
>>ls (lista di char*): "b" -> "a" -> "d" -> "c" -> "b" -> "a" -> "d" -> "c" -> NULL
>>ls (pila di char*): "b" -> "a" -> "d" -> "c" -> "b" -> "a" -> "d" -> "c" -> NULL
>>Errore: operazione non permessa su ls
>>ls (pila di char*): "b" -> "a" -> "d" -> "c" -> "b" -> "a" -> "d" -> "c" -> NULL
>>ls (coda di char*): "b" -> "a" -> "d" -> "c" -> "b" -> "a" -> "d" -> "c" -> NULL
>>ls (coda di char*): "b" -> "a" -> "d" -> "c" -> "b" -> "a" -> "d" -> "c" -> "Z" -> NULL
>>ls (lista di char*): "b" -> "a" -> "d" -> "c" -> "b" -> "a" -> "d" -> "c" -> "Z" -> NULL
>>ls (lista di char*): "b" -> "Z" -> "a" -> "d" -> "c" -> "b" -> "a" -> "d" -> "c" -> "Z" -> NULL
>>Arrivederci!

Test 12

Input

crea lc come lista di char
stampa lc

aggiungi a lc il valore "
stampa lc
aggiungi a lc il valore 0 prima di "
stampa lc
aggiungi a lc il valore " prima di 0
stampa lc

affiungi a lc il valore " prima di 0
aggiungi a lc il valore " prima di
elimina da lc tutte le occorrenze
trova in lc
lunghezza di
primo elemento
elimina da lc
aggiungi a lc
distruggi
crea pc come pila di unaltrotipo
crea pc come pila di
stampa

esci

Output atteso

>>lc (lista di char): NULL
>>lc (lista di char): " -> NULL
>>lc (lista di char): 0 -> " -> NULL
>>lc (lista di char): " -> 0 -> " -> NULL
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Errore: comando sconosciuto
>>Arrivederci!