PDA

Visualizza la versione completa : Struttura stack in C


Marcolino79
15-09-2004, 19:23
alloar st studiando l'implementazione di una pila in c, riporto il codice:
-------------CODE-----------------
1.#define MAX SIZE 100
2.Stack Creas(MAX SIZE) ::=
3.typedef struct {
4. int key:
5. //altri eventuali campi
6. } elemento;
7.
8.elemento stack[MAX SIZE];
9.int top=-1;
10.
11.Booleano Vuoto(Stack) ::= top<0;
12.Booleano Pieno(Stack) ::= top>= Max SIZE-1;

Allora nela riga 2 cosa fa?Nella 3 fino alla 7 definisce la struttura.. E la 8?Definisce un array di strutture? :bh:
Poi non mi ricordo il simbolo ::= per cosa si usa?
Grazie a tutti ciau ciau :dh:

anx721
15-09-2004, 23:45
Si tratta di uno pseudocodice che non e c, ::= sembra essere il simbolo che introduce la definizione di un tipo o di una funzione, la 8 definisce un array di strutture

Marcolino79
16-09-2004, 13:15
Ciao ancora...Allora il fatto che nelle dispense e anche nel libro usa la medesima nomenclatura...Io avevo capito che quella operazione
Stack Creas(MAX SIZE) ::= si riferisse alla struttura, secondo me il fatto che ingarbuglia tutto la typedef che serve per accorciare i nomi ecc...Quindi suppongo che questa operazione sia legata alla typedef ma come?Cosa Stack?Creas il nome della struttura e gli si passa max size una costante fra parentesi tonde?Che vuol dire?
Grazie se vorrai rispondere ciauuu :confused:

anx721
16-09-2004, 15:39
Ad intuito con

2.Stack Creas(MAX SIZE) ::=
3.typedef struct {
4. int key:
5. //altri eventuali campi
6. } elemento;
7.
8.elemento stack[MAX SIZE];
9.int top=-1;
10.
11.Booleano Vuoto(Stack) ::= top<0;
12.Booleano Pieno(Stack) ::= top>= Max SIZE-1;

definisce il tipo di dato STACK, dapprima definendo il tipo elemento come una struct che con il campo key ed altri eventuali campi; poi definisce due ooperaioni supportate dallo STACK, operzioni che rstituiscono un Booleano, e servono a sapere se lo STACK pieno (ovvero top pari a Max SIZE-1) o vuoto (top = -1). top l'indice che unta all'ultimo elemento inserito nello stack ed inizialiszzato a -1;

con elemento stack[MAX SIZE];

crea un array di MAX SIZE elementi che lo stack, e che connterr al massimo MAX SIZE elementi di tipo elemento. Commuqnue dovresti elggerti il libro, perche in genere quando usando dello pseudo codice all'inizio lo illustrano un po

Marcolino79
16-09-2004, 16:35
Penso di aver capito!!! Allora tramite la typedef mi pare di ricordare che tu possa dichiarare una funzione del tipo che poi crei con la solita prassi struct ecc...
Quindi in quella riga che non capivo stava inizializzando una funzione del tipo Stack(che verr creato in seguito)e passa alla funzione creas il numero maxsize della lista di elementi da creare.....Spero di essermi spiegato, comunque penso che sia la soluzione giusta..Ciau ciau..

Loading