PDA

Visualizza la versione completa : [C] Nozioni sulle pile e problemi di compilazione


xxdavide84xx
16-01-2007, 22:45
Potreste gentilmente dirmi dove posso trovare informazioni sulle pile.....
Devo trovare e scrivere 4 codici diversi
1) per inserire un elemento,
2) per cancellare un elemento (solo la prima occorrenza trovata)
3) per stampare tutti gli elementi presenti
4) per cancellare tutte le occorrenze.

Sapresti dirmi dove trovare e leggermi delle nozioni sulle pile?

Grazie...

Alla fine progetto consegnato e tutto OK!!!

So che vanno usati push e pop, ma ho un problema.....

Per dire per il problema 1) inserimento ho provato a scrivere questo ma mi da 1 ERRORE sulla push che non riesco a capire!!

# include <stdio.h>
# include <stdlib.h>

struct cella{
int valore;
struct cella * next;
};

struct cella *p;
struct cella *nuovo;

void main()
{
push(&p);
}

void push(struct cella **p, struct cella *nuovo)
{
printf("fuck");
nuovo= (struct cella*)malloc(sizeof(struct cella));
nuovo->next = *p;
*p = nuovo;
}

oregon
16-01-2007, 23:01
Ma di quale errore parli?

xxdavide84xx
17-01-2007, 00:12
anche per me dovrebbe andare bene, ma se copi e incolli questo programma in viasual studio mi da un errore di push.....

oregon
17-01-2007, 00:17
A parte il fatto che potresti dire di quale errore si tratta senza bisogno che si copi il codice e si compili, si nota subito che la push si aspetta due parametri e tu ne passi solamente uno.

Non so se e' una svista e se ci vogliono uno o due parametri, ma se il codice lo hai scritto tu, dovresti saperlo ...

xxdavide84xx
17-01-2007, 00:36
Questo l'ho scritto io.....
dicevo "se lo copi e lo incolli" riferito a se tu provi a copiarlo e incollarlo verrà fuori un errore
inconcepibile a me....
l'errore non dipende da quello...sia che metta 2 o 0 parametri mi da ERRORE!!!!!
Se provi a compilare su un qualsiasi compilatore di C questo codice ti da ERRORE....

oregon
17-01-2007, 02:58
Scusa ... ti ho detto che il problema e' sugli argomenti ... non e' indifferente che ci siano due argomenti e tu ne passi uno solo ... Ovvio che ti da' un errore ...

In piu' non hai dichiarato il prototipo della funzione push, anche se puoi rimediare scrivendo il main alla fine del file sorgente.

Dal punto di vista della compilazione, non ci sono altri problemi ...

Magari se tu mi indicassi qual e' l'ERRORE che ti si presenta, potremmo discutere di qualcosa di piu' concreto ...

xxdavide84xx
17-01-2007, 10:56
Mi ero scordato di dichiarare la push sopra....
Grazie dell'illuminazione!!!!

xxdavide84xx
17-01-2007, 11:06
Così tutto OK...
# include <stdio.h>
# include <stdlib.h>

struct cella{
int valore;
struct cella * next;
};

struct cella *p;
struct cella *nuovo;

void push();

void main()
{
push(&p,nuovo);
}

void push(struct cella **p, struct cella *nuovo)
{
nuovo= (struct cella*)malloc(sizeof(struct cella));
nuovo->next = *p;
*p = nuovo;
}

però volevo chiedere una cosa: per fare in modo che venga stampato a video un qualsiasi risultato come devo fare?
per caso devo mettere un printf("Aggiungi un nuovo elemento: ");
sopra al push in blu e poi devo mettere anche uno scanf????

xxdavide84xx
17-01-2007, 13:03
Inoltre per cancellare devo usare una pop e poi cosa???

LeleFT
17-01-2007, 13:45
Non è sufficiente dire "Mi dà errore" o invitare la gente a "copiare e incollare" il codice in un ambiente di sviluppo: non tutti hanno Visual Studio per poter provare il codice.

E' invece obbligatorio specificare nel post il messaggio d'errore che viene dato in fase di compilazione/esecuzione. In questo modo, chiunque legga il messaggio può interpretarlo e, senza avere nessuno strumento di sviluppo alla mano, cercare di fornirti una soluzione.

Altro suggerimento: i titoli delle discussioni devono dare un'idea del contenuto della discussione stessa.


Questo titolo lo modifico io.


Ciao. :ciauz:

Loading