Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 ITPS - Secondo Anno
 Algoritmi e Strutture Dati + Lab.
 Dubbio specifiche algebriche di Pila

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
hunter32 Inserito il - 14/01/2011 : 13:32:39
Vorrei sapere se le seguenti specifiche algebriche di Pila sono corrette o no.
Le relative specifiche sintattiche si trovano a pag.3 del pdf che trovate al link:
http://www.di.uniba.it/~malerba/courses/asd/2010-11/stack-queue.pdf


declare s, s':stack; i:item

+--------------+-----------------------------------------------------------+
| osservazioni | costruttore di s'                                         |
+--------------+-----------------------------------------------------------+
|              | newstack | push(s, i)                                     |
+--------------+----------+------------------------------------------------+
| isnew(s')    | TRUE     | FALSE                                          |
| top(s')      | ERROR    | if isnew(s) then i else top(s)                 |
| pop(s')      | ERROR    | if isnew(s) then newstack else push(pop(s), i) |
+--------------+----------+------------------------------------------------+


Grazie.
5   U L T I M E    R I S P O S T E    (in alto le più recenti)
hunter32 Inserito il - 14/01/2011 : 17:54:37
Grazie a tutti!
pier_IP Inserito il - 14/01/2011 : 17:10:56
Le politiche di coda e pila sono diverse.

PILA

push(s, i) = s'       L'oggetto viene inserito al primo posto shiftando tutti gli altri
pop(s) = s'           Elimina il primo elemento dalla pila
top(s)=i              Restituisce(senza modificare la pila) il primo elemento della pila

pop( push(s,i) ) = s      La pop elimina il primo elemento della pila, cioè quello che è stato appena inserito!
top( push(s,i) ) = i      La top restituisce il primo elemento della pila, cioè quello che è stato appena inserito!
Quindi e' inutile chiedersi se s e' vuoto o no!




CODA

addq(q, i) = q'       L'oggetto viene inserito in ultima posizione, cioe' viene accodato alla coda
deleteq(q) = q'       Viene eliminato l'elemento in prima posizione
frontq(q) = i         Viene restituito l'elemento in prima posizione
isnewq(q) = b         Predica se la coda e' vuota

Se la q e' vuota allora q' avra' solo l'elemento i, altrimenti si evoca frontq su q
frontq( addq(q,i) ) = if isnewq(q) then i else frontq(q)

Se la q e' vuota allora q' avra' solo l'elemento i quindi deleteq cancellera' l'unico elemento, altrimenti bisogna rimuovere il primo elemento di q ed aggiugerli i
deleteq( addq(q,i) ) = if isnew(q) then newq else addq(deleteq(q), i)       

Spero di essere stato chiaro....
SD83 Inserito il - 14/01/2011 : 17:07:53
if isnew(s) then i else top(s)
if isnew(s) then newstack else push(pop(s), i)
non hanno senso perché nella pila in ogni caso top(push(s, i)) è i e pop(push(s, i)) è la pila che avevi prima del push

es. hai una pila s = 1 2 3 4 se fai push 5 hai 1 2 3 4 5 se fai pop hai di nuovo s = 1 2 3 4
nella coda no coda q = 1 2 3 4 add 5 hai 1 2 3 4 5 se delete hai 2 3 4 5 che non è la stessa q
hunter32 Inserito il - 14/01/2011 : 16:09:14
Quello che ho scritto dovrebbe essere errato perché sulle slide c'è scritta, come giustamente hai riportato, un'altra cosa.
Ho lasciato "dovrebbe" perché nello stesso pdf, ma a pag.14, ci sono le specifiche di Coda che riporto in basso:


declare q, q':queue; i:item

+--------------+-----------------------------------------------------------+
| osservazioni | costruttore di q'                                         |
+--------------+-----------------------------------------------------------+
|              | newq     | addq(q, i)                                     |
+--------------+----------+------------------------------------------------+
| isnew(q')    | TRUE     | FALSE                                          |
| frontq(q')   | ERROR    | if isnew(q) then i else frontq(q)              |
| deleteq(q')  | ERROR    | if isnew(q) then newq else addq(deleteq(q), i) |
+--------------+----------+------------------------------------------------+


In pratica, la differenza consiste nell'aggiunta di un controllo su q (immagino), ma perché in Coda dovrebbe essere inserito e in Pila no?
pier_IP Inserito il - 14/01/2011 : 15:27:08
La soluzione e' sulle slide stesse:

pop(push(stk, i)) = stk
top(push(stk, i)) = i
isnew(newstack) = true
isnew(push(stk, i)) = false

top(newstack) = error
pop(newstack) = error


Che riportata in tabella e':


+--------------+------------------------------+
| osservazioni | costruttore di s'            |
+--------------+------------------------------+
|              | newstack | push(s, i)        |
+--------------+----------+-------------------+
| isnew(s')    | TRUE     | FALSE             |
| top(s')      | ERROR    | i                 |
| pop(s')      | ERROR    | s                 |
+--------------+----------+-------------------+


Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,05 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000