|
khelidan |
io ho un problema è da ieri che ci sto a dietro,d ... |
16-07-2008 15:33 |
|
|
khelidan |
.grande:maestro.
Registered: Jun 2003
Posts: 1196 (0.15 al dì)
Location: Milano
Corso: Informatica
Anno: Finito....
Time Online: 13 Days, 12:08:03: [...]
Status: Offline
Edit | Report | IP: Logged |
io ho un problema è da ieri che ci sto a dietro,dopo che faccio una delete mi ritrovo in alcuni nodi le adiacenze(sovrapposizioni) sballate,come se dopo la delete i puntatori che ho nelle mie liste di adiacenza puntassero a qualche altro nodo,qualcuno ha avuto lo stesso problema??
__________________
Khelidan
|
16-07-2008 15:33 |
|
|
| |
|
Sacratix |
grazie al cielo, no.
... |
16-07-2008 15:51 |
|
|
Sacratix |
.illuminato.
Registered: Jun 2008
Posts: 154 (0.03 al dì)
Location: Lago d'Iseo - Bergamo
Corso: Informatica
Anno: 3
Time Online: 1 Day, 4:47:22 [...]
Status: Offline
Edit | Report | IP: Logged |
grazie al cielo, no.
non sò come hai implementato la delete, però
o hai un errore nella funzione che ti elimina un elemento dalla lista [ma và!]
o se lo fai mentre esplori il grafo, salti qualche elemento [capita]
o come succedeva a me, avevi qualche elemento duplicato nelle liste
__________________
I wish for this night-time to last for a life-time
|
16-07-2008 15:51 |
|
|
| |
|
khelidan |
no ma sai quale è il bello,le liste sono coerenti ... |
16-07-2008 16:09 |
|
|
khelidan |
.grande:maestro.
Registered: Jun 2003
Posts: 1196 (0.15 al dì)
Location: Milano
Corso: Informatica
Anno: Finito....
Time Online: 13 Days, 12:08:03: [...]
Status: Offline
Edit | Report | IP: Logged |
no ma sai quale è il bello,le liste sono coerenti dopo la delete,però poi quando vado a inserire un altro nodo,alcune volte mi si sballano le liste di adiacenza di nodi che non centrano niente con l'ultimo inserito,e poi per come ho fatto io l'inserimento è impossibile che il nuovo nodo finisca per sbaglio lì,per quello ho pensato a qualche puntatore sballato dopo la delete,e succede solo e soltanto dopo la delete,se non avevo sto problema avevo finita da ieri
__________________
Khelidan
Last edited by khelidan on 17-07-2008 at 21:48
|
16-07-2008 16:09 |
|
|
| |
|
Sacratix |
guarda
... |
16-07-2008 17:20 |
|
|
Sacratix |
.illuminato.
Registered: Jun 2008
Posts: 154 (0.03 al dì)
Location: Lago d'Iseo - Bergamo
Corso: Informatica
Anno: 3
Time Online: 1 Day, 4:47:22 [...]
Status: Offline
Edit | Report | IP: Logged |
guarda
per risolvere certi problemi
c'è solo una cosa da fare
printf("\ncontrollo x\n");
void stampa_tutto(###);
la metti dopo ogni blocco di istruzioni sospette
e vedi subito quando il problema salta fuori
per capire perchè poi è un'altra storia
poi mi auguro che nessuno qua stia debuggando con il blocco note,
ma con un compilatore che implementi il 'watch'...
__________________
I wish for this night-time to last for a life-time
|
16-07-2008 17:20 |
|
|
| |
|
Sacratix |
welaah, nessunissimissimo problema di compilazione ... |
16-07-2008 18:57 |
|
|
Sacratix |
.illuminato.
Registered: Jun 2008
Posts: 154 (0.03 al dì)
Location: Lago d'Iseo - Bergamo
Corso: Informatica
Anno: 3
Time Online: 1 Day, 4:47:22 [...]
Status: Offline
Edit | Report | IP: Logged |
welaah, nessunissimissimo problema di compilazione, indipendentemente dalle opzioni usate
per qualche strano motivo ero convinto che i commenti /* */
fossero di c++ e // di c
mi confondevo, era il contrario
__________________
I wish for this night-time to last for a life-time
|
16-07-2008 18:57 |
|
|
| |
|
Deky |
ragazzi ma voi che funzione avete usato per legger ... |
17-07-2008 10:43 |
|
|
Deky |
.fedelissimo.
Registered: Feb 2007
Posts: 53 (0.01 al dì)
Location:
Corso: informatica
Anno:
Time Online: 20:50:18 [...]
Status: Offline
Edit | Report | IP: Logged |
ragazzi ma voi che funzione avete usato per leggere la stringa?? perke' ho notato che i miei problemi sn in qualche modo legati a questa funzione del pistola..........
|
17-07-2008 10:43 |
|
|
| |
|
Sacratix |
|
|
Sacratix |
.illuminato.
Registered: Jun 2008
Posts: 154 (0.03 al dì)
Location: Lago d'Iseo - Bergamo
Corso: Informatica
Anno: 3
Time Online: 1 Day, 4:47:22 [...]
Status: Offline
Edit | Report | IP: Logged |
...
il parametro %s nella printf
__________________
I wish for this night-time to last for a life-time
|
17-07-2008 13:23 |
|
|
| |
|
Sacratix |
allora...
... |
17-07-2008 13:37 |
|
|
Sacratix |
.illuminato.
Registered: Jun 2008
Posts: 154 (0.03 al dì)
Location: Lago d'Iseo - Bergamo
Corso: Informatica
Anno: 3
Time Online: 1 Day, 4:47:22 [...]
Status: Offline
Edit | Report | IP: Logged |
allora...
Aguzzoli rispone:
Si', avete ragione, nella stesura del progetto
non abbiamo considerato questo caso.
A questo punto:
mi sembra che per chi abbia gia' deciso come affrontare gli
altri aspetti del progetto sia piu' conveniente
considerare che il macchinario risultante dall'inserimento
di a,b,c,d, con conseguente rimozione di d,
sia semplicemente *fermo* o bloccato e che quindi
inserimenti di **ulteriori** piastre adiacenti ad a,b e/o d
siano impossibili perche' il macchinario risultante
sara' ancora bloccato.
La rimozione successiva di una fra a b e d o la riinserzione
di una piastra sovrapposta a tutte sbloccherebbe di nuovo
il macchinario.
Nella "mia implementazione" non vedo complicazioni aggiuntive
nel gestire la cosa in questo modo (la visita del macchinario
per stabilire se l'inserimento di una piastra consente al
macchinario di girare rimane la stessa).
Resta il fatto che ammetto che il progetto erroneamente
non specifica cosa succede nel caso da lei evidenziato
e quindi saro' flessibile nel giudicare come tale caso
sara' stato affrontato da lei e dai suoi colleghi,
e i miei test non conterranno esempi del caso.
(Ad esempio, potreste semplicemente considerare che
tale situazione non si verifichi mai, e non gestirla
del tutto).
Non posso pero' giustificare soluzioni implementative
che prendano questo caso come "scusa" per non realizzare
pienamente le funzionalita' richieste dal progetto.
Dunque, una piastra deve potersi sovrapporre a piu'
piastre adiacenti, dato che avete la mia garanzia
che il caso incriminato non si verifichera' mai
nei test.
//------------------------------------------------
riassunto:
inserite comunque le piastre che tanto non testerò
il caso di blocco nell'eliminazione
__________________
I wish for this night-time to last for a life-time
|
17-07-2008 13:37 |
|
|
| |
|
khelidan |
[QUOTE][i]Originally posted by Sacratix [/i]
... |
17-07-2008 14:45 |
|
|
khelidan |
.grande:maestro.
Registered: Jun 2003
Posts: 1196 (0.15 al dì)
Location: Milano
Corso: Informatica
Anno: Finito....
Time Online: 13 Days, 12:08:03: [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Sacratix
...
il parametro %s nella printf
scanf al massimo, e comunque c'è scritto che non si devono avere limiti di lunghezza,cioè dovresti riallocare spazio qualora la tua stringa sia piu grande del char* definito per la scanf
__________________
Khelidan
|
17-07-2008 14:45 |
|
|
| |
|
Sacratix |
ops...
... |
17-07-2008 15:45 |
|
|
Sacratix |
.illuminato.
Registered: Jun 2008
Posts: 154 (0.03 al dì)
Location: Lago d'Iseo - Bergamo
Corso: Informatica
Anno: 3
Time Online: 1 Day, 4:47:22 [...]
Status: Offline
Edit | Report | IP: Logged |
ops...
io mio riservo comunque di imporre che più di 100 char per nome non siano presi
anche perchè, scusa, come fai altrimenti? leggi charxchar e li accodi in una lista finchè non ternima l'inserimento?
non si devono avere limiti di lunghezza, peccato che trovare spazio (consecutivo) in RAM per un numero indefinito di char non è sempre possibile, fallisce l'allocazione
__________________
I wish for this night-time to last for a life-time
|
17-07-2008 15:45 |
|
|
| |
|
khelidan |
si puo,guarda i progetti vecchi,le varie funzioni ... |
17-07-2008 16:05 |
|
|
khelidan |
.grande:maestro.
Registered: Jun 2003
Posts: 1196 (0.15 al dì)
Location: Milano
Corso: Informatica
Anno: Finito....
Time Online: 13 Days, 12:08:03: [...]
Status: Offline
Edit | Report | IP: Logged |
si puo,guarda i progetti vecchi,le varie funzioni leggi stringa,la calloc ci vuole mi pare,allochi spazio consecutivo
__________________
Khelidan
|
17-07-2008 16:05 |
|
|
| |
|
Sacratix |
appunto perchè lo spazio necessario è consecutiv ... |
17-07-2008 16:17 |
|
|
Sacratix |
.illuminato.
Registered: Jun 2008
Posts: 154 (0.03 al dì)
Location: Lago d'Iseo - Bergamo
Corso: Informatica
Anno: 3
Time Online: 1 Day, 4:47:22 [...]
Status: Offline
Edit | Report | IP: Logged |
appunto perchè lo spazio necessario è consecutivo che ad un certo punto non si trova più, e allora si parte con lo swap
cmq. ora guardo i vecchi progetti, al massimo un sano copia e incolla
__________________
I wish for this night-time to last for a life-time
|
17-07-2008 16:17 |
|
|
| |
|
pirlo21 |
ragazzi non sono sicuro sull'eliminazione...
... |
17-07-2008 18:16 |
|
|
pirlo21 |
.arcimaestro.
Registered: Nov 2007
Posts: 352 (0.06 al dì)
Location:
Corso: informatica
Anno:
Time Online: 2 Days, 21:38:57 [...]
Status: Offline
Edit | Report | IP: Logged |
ragazzi non sono sicuro sull'eliminazione...
void eliminazione(char * nome){
int x;
if(nome[0]>='a' && nome[0]<='z')
elimina(nome);
else
{x=atoi(nome);
eliminah(x);
}}
Dovrebbe andare così? E poi come gestite voi l'eminazione delle piastre alla stessa altezza? Bisogna fare una visita in ampiezza del grafo o c'è qualche soluzione migliore?
|
17-07-2008 18:16 |
|
|
| |
|
khelidan |
ragazzi io ho un problema,avete presente la porzio ... |
17-07-2008 18:43 |
|
|
khelidan |
.grande:maestro.
Registered: Jun 2003
Posts: 1196 (0.15 al dì)
Location: Milano
Corso: Informatica
Anno: Finito....
Time Online: 13 Days, 12:08:03: [...]
Status: Offline
Edit | Report | IP: Logged |
ragazzi io ho un problema,avete presente la porzione di codice della rbdelete,copio da algo team:
code:
void rbdelete(rbtree *tree, rbnode *q)
{
rbnode *r, *s;
if(q->left == tree->nil || q->right == tree->nil)
r = q;
else
r = treesucc(tree,q);
s = r->left != tree->nil ? r->left : r->right;
s->up = r->up;
if(r->up == tree->nil)
tree->root = s;
else
if(r == r->up->left)
r->up->left = s;
else
r->up->right = s;
if(r != q)
q->v = r->v;
if(r->c == black)
fixup(tree, s);
free(r);
}
il pezzo in grassetto,quando la delete entra in quell'if e trova quel nodo,le adiacenze che puntano a quel nodo vengono sostituite con l'ultimo nodo che poi andrò a inserire dopo la delete....che delirio,qualcuno ha idea di che razza di magagna sia??
__________________
Khelidan
|
17-07-2008 18:43 |
|
|
| |
|
khelidan |
[QUOTE][i]Originally posted by pirlo21 [/i]
... |
17-07-2008 18:43 |
|
|
khelidan |
.grande:maestro.
Registered: Jun 2003
Posts: 1196 (0.15 al dì)
Location: Milano
Corso: Informatica
Anno: Finito....
Time Online: 13 Days, 12:08:03: [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by pirlo21
ragazzi non sono sicuro sull'eliminazione...
void eliminazione(char * nome){
int x;
if(nome[0]>='a' && nome[0]<='z')
elimina(nome);
else
{x=atoi(nome);
eliminah(x);
}}
Dovrebbe andare così? E poi come gestite voi l'eminazione delle piastre alla stessa altezza? Bisogna fare una visita in ampiezza del grafo o c'è qualche soluzione migliore?
visita inorder,non mi viene in mente niente altro!
__________________
Khelidan
|
17-07-2008 18:43 |
|
|
| |
|
All times are GMT. The time now is 16:57. |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|