 |
carla86 |
| mi dite x favore come faccio a scrivere una funzio ... |
07-06-2010 13:17 |
|
 |
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
mi dite x favore come faccio a scrivere una funzione ke ritorna un'array d interi?
int *pos(lista *p, int nro)
{
int pos[nro];
/*faccio quello che devo fare*/
return pos;
}
può andare bene? se no com'è? grazie
|
|
07-06-2010 13:17 |
|
|
|  |
 |
Guepe |
| Risolto!!ho abbandonato le liste e ho creato u nal ... |
07-06-2010 13:33 |
|
 |
Guepe |
.fedelissimo.
Registered: Feb 2007
Posts: 54 (0.01 al dì)
Location: Milano
Corso: informatica F49
Anno: 3
Time Online: 1 Day, 10:04:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Risolto!!ho abbandonato le liste e ho creato u nalbero nuovo e poi inorder fa tutto, rimane solo un problema....nn mi prende l'ultimo componente nella ricerca e nn so il perchè...bah continuo a far prove....
|
|
07-06-2010 13:33 |
|
|
|  |
 |
Guepe |
| [QUOTE][i]Originally posted by Guepe [/i]
... |
07-06-2010 13:46 |
|
 |
Guepe |
.fedelissimo.
Registered: Feb 2007
Posts: 54 (0.01 al dì)
Location: Milano
Corso: informatica F49
Anno: 3
Time Online: 1 Day, 10:04:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Guepe
Risolto!!ho abbandonato le liste e ho creato u nalbero nuovo e poi inorder fa tutto, rimane solo un problema....nn mi prende l'ultimo componente nella ricerca e nn so il perchè...bah continuo a far prove....
non è che nn mi prende l'ultimo, è inorder che mi restituisce solo due componenti dell'albero....
|
|
07-06-2010 13:46 |
|
|
|  |
 |
carla86 |
| x la funzione lineare voi come fate? o meglio dopo ... |
07-06-2010 14:12 |
|
 |
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
x la funzione lineare voi come fate? o meglio dopo aver letto le posizioni fate uno alla volta i componenti partendo da quello da mettere in prima posizione oppure partite da quello ke deve avere lunghezza minore..
mi spiego meglio con un esempio
l 2 7 17 24 26
partitè dal componente da mettere nella posizione due oppure partite dal componente da mettere in posizione 24 visto ke deve essere il più piccolo?
nel caso partite da quello più piccolo come fate?
|
|
07-06-2010 14:12 |
|
|
|  |
 |
Guepe |
| proprio non riesco a farla andare sta funzione ord ... |
07-06-2010 16:16 |
|
 |
Guepe |
.fedelissimo.
Registered: Feb 2007
Posts: 54 (0.01 al dì)
Location: Milano
Corso: informatica F49
Anno: 3
Time Online: 1 Day, 10:04:49 [...]
Status: Offline
Edit | Report | IP: Logged |
proprio non riesco a farla andare sta funzione ordina.....mi stampa solo due valori dell'albero....non riesco a capire perke mi stampa solo la radice e il figlio sinistro cioe i componenti 24 e 7...
|
|
07-06-2010 16:16 |
|
|
|  |
 |
carla86 |
| qualcuno ha fatto la funzione lineare?!?!
... |
07-06-2010 16:24 |
|
 |
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
qualcuno ha fatto la funzione lineare?!?!
io mi sa ke sono fusa..
sono riuscita a leggere tutte le posizioni inseritemi cn il comando l e le ho memorizzate in una lista.
mi sono creata un'altro albero rb con i componenti ordinati per area (come da qualcuno suggerito).
ma ora nn so come calcolare, o meglio nn so dove memorizzare le distanze, ogni volta la distanza tra una posizione e la successiva x poter controllare ke il massimo ritornatomi dall'albero ordinato per area possa stare in quella posizione.
qualche idea??
|
|
07-06-2010 16:24 |
|
|
|  |
 |
mostrielo |
| [QUOTE][i]Originally posted by carla86 [/i]
... |
07-06-2010 17:01 |
|
 |
mostrielo |
boolean

Registered: Sep 2004
Posts: 47 (0.01 al dì)
Location: Milano
Corso: Informatica (F49)
Anno: c++
Time Online: 2 Days, 15:14:46 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by carla86
qualcuno ha fatto la funzione lineare?!?!
io mi sa ke sono fusa..
sono riuscita a leggere tutte le posizioni inseritemi cn il comando l e le ho memorizzate in una lista.
mi sono creata un'altro albero rb con i componenti ordinati per area (come da qualcuno suggerito).
ma ora nn so come calcolare, o meglio nn so dove memorizzare le distanze, ogni volta la distanza tra una posizione e la successiva x poter controllare ke il massimo ritornatomi dall'albero ordinato per area possa stare in quella posizione.
qualche idea??
Io ho usato degli array:
<< 2, 7, 17, 24, 26>> input
<< 2, 7, 17, 24>> : gancio
<< 5, 10, 7, 2>> : base (gancio[i+1] - gancio[i])
<<null,null,null,null>> : puntatori a Componente
|
|
07-06-2010 17:01 |
|
|
|  |
 |
Guepe |
| Non so dove sbaglio ma dopo tre ore mi sto per man ... |
07-06-2010 17:46 |
|
 |
Guepe |
.fedelissimo.
Registered: Feb 2007
Posts: 54 (0.01 al dì)
Location: Milano
Corso: informatica F49
Anno: 3
Time Online: 1 Day, 10:04:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Non so dove sbaglio ma dopo tre ore mi sto per mangiare il pc!!
Carla nella funzione ordina per creare un albero nuovo inserendo i componenti con kiave c (costo) tu come hai fatto? Hai riscritto le funzioni di inserimento dei componenti nell'albero? Cosi facendo mi continua a ordinarli per id anche se nelle due funzioni la posizione dei nodi è definita dalle equazioni con il costo come paramentro.....nn capisco come sia possibile...
|
|
07-06-2010 17:46 |
|
|
|  |
 |
carla86 |
| [QUOTE][i]Originally posted by Guepe [/i]
... |
07-06-2010 17:50 |
|
 |
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Guepe
Non so dove sbaglio ma dopo tre ore mi sto per mangiare il pc!!
Carla nella funzione ordina per creare un albero nuovo inserendo i componenti con kiave c (costo) tu come hai fatto? Hai riscritto le funzioni di inserimento dei componenti nell'albero? Cosi facendo mi continua a ordinarli per id anche se nelle due funzioni la posizione dei nodi è definita dalle equazioni con il costo come paramentro.....nn capisco come sia possibile...
dove ci sono in confronti per intendetci il prof scrive k<nodo->campo tu per id hai scritto id<nodo.id ora scrivi c<nodo.costo
mi sa ci sono un paio d confronti.
e poi inorder è una funzione ricorsiva; tra le due chiamate ci metti la printf x farli stampare
|
|
07-06-2010 17:50 |
|
|
|  |
 |
Guepe |
| [QUOTE][i]Originally posted by Guepe [/i]
... |
07-06-2010 17:53 |
|
 |
Guepe |
.fedelissimo.
Registered: Feb 2007
Posts: 54 (0.01 al dì)
Location: Milano
Corso: informatica F49
Anno: 3
Time Online: 1 Day, 10:04:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Guepe
Non so dove sbaglio ma dopo tre ore mi sto per mangiare il pc!!
Carla nella funzione ordina per creare un albero nuovo inserendo i componenti con kiave c (costo) tu come hai fatto? Hai riscritto le funzioni di inserimento dei componenti nell'albero? Cosi facendo mi continua a ordinarli per id anche se nelle due funzioni la posizione dei nodi è definita dalle equazioni con il costo come paramentro.....nn capisco come sia possibile...
No scusa sbagliavo una funzione, riscrivendo le le funzioni di inserimento, inorder sull'albero mi stampa solo due nodi però ordinati giusti....
|
|
07-06-2010 17:53 |
|
|
|  |
 |
Guepe |
| i confronti nelle due funzioni li faccio fare con ... |
07-06-2010 17:57 |
|
 |
Guepe |
.fedelissimo.
Registered: Feb 2007
Posts: 54 (0.01 al dì)
Location: Milano
Corso: informatica F49
Anno: 3
Time Online: 1 Day, 10:04:49 [...]
Status: Offline
Edit | Report | IP: Logged |
i confronti nelle due funzioni li faccio fare con il valore c passato e il valore del nodo gia presente e infatti funziona pero me ne stampa solo due:
nell'esempio del prof inorder mi da
24 1 2 3 3
7 3 4 6 2
ma il componente 23 nn lo stampa! son sicuro di averlo inserito nell'albero perke per precauzione mi son fatto fare una stampa dopo ogni inserimento.
|
|
07-06-2010 17:57 |
|
|
|  |
 |
Guepe |
| [QUOTE][i]Originally posted by Guepe [/i]
... |
07-06-2010 18:27 |
|
 |
Guepe |
.fedelissimo.
Registered: Feb 2007
Posts: 54 (0.01 al dì)
Location: Milano
Corso: informatica F49
Anno: 3
Time Online: 1 Day, 10:04:49 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Guepe
i confronti nelle due funzioni li faccio fare con il valore c passato e il valore del nodo gia presente e infatti funziona pero me ne stampa solo due:
nell'esempio del prof inorder mi da
24 1 2 3 3
7 3 4 6 2
ma il componente 23 nn lo stampa! son sicuro di averlo inserito nell'albero perke per precauzione mi son fatto fare una stampa dopo ogni inserimento.
ci rinuncio.....mettendo altri componenti da ordinare va tutto ok, col componente 23 mi da questo output sbagliato, nn riesco a capire dove sia l'errore visto ke la funzione è identica a quella per creare l'abero normale apparte il fato che cambio la kiave.
|
|
07-06-2010 18:27 |
|
|
|  |
 |
carla86 |
| [QUOTE][i]Originally posted by mostrielo [/i]
... |
07-06-2010 20:59 |
|
 |
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by mostrielo
Io ho usato degli array:
<< 2, 7, 17, 24, 26>> input
<< 2, 7, 17, 24>> : gancio
<< 5, 10, 7, 2>> : base (gancio[i+1] - gancio[i])
<<null,null,null,null>> : puntatori a Componente
scusami ma hai usato degli array gia dall'inizio quando hai letto l'input oppure con l'input letto e messo in un'altra struttura (tipo io l'ho messo in una lista) hai costruito i tre array?
l'ultimo array sarebbero dei puntatori ai nodi dell'albero giusto?
|
|
07-06-2010 20:59 |
|
|
|  |
 |
carla86 |
| ho un'altra domanda, una volta ke mi sono fatta da ... |
07-06-2010 21:34 |
|
 |
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
ho un'altra domanda, una volta ke mi sono fatta dare il massimo dall'albero in cui ci sn i nodi ordinati per area quale tra queste due funzioni mi da il suo precedente?
nodorb *treesucc(alberorb *r, nodorb *q)
{
nodorb *qq;
if(q->f_destro != r->sentinella)
return rbtmin(q->f_destro,r->sentinella);
qq = q->padre;
while(qq != r->sentinella && q == qq->f_destro) {
q = qq;
qq = qq->padre;
}
return qq == r->sentinella ? NULL : qq;
}
nodorb *treepred(alberorb *r, nodorb *q)
{
nodorb *qq;
if(q->f_sinistro != r->sentinella)
return rbtmax(q->f_sinistro,r->sentinella);
qq = q->padre;
while(qq != r->sentinella && q == qq->f_sinistro) {
q = qq;
qq = qq->padre;
}
return qq == r->sentinella ? NULL : qq;
}
a logica vi direi treepred ma siccome in qst momento nn sono sicura d nulla ve lo chiedo..
|
|
07-06-2010 21:34 |
|
|
|  |
 |
carla86 |
| altra domanda:
... |
07-06-2010 22:20 |
|
 |
carla86 |
.illuminato.
Registered: Dec 2006
Posts: 219 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: Terzo
Time Online: 6 Days, 21:40:54 [...]
Status: Offline
Edit | Report | IP: Logged |
altra domanda:
come si stampa un array di puntatori a una struttura nodo di un albero red-black?
a sto punto nn è più semplice che i componenti li si mettano in una lista a parte con solo le caratteristiche invece che come puntatori a una struttura?
|
|
07-06-2010 22:20 |
|
|
|  |
 |
| All times are GMT. The time now is 09:14. |
|
|
 |
|
 |
|
|
|  |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|