Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Struttura stack in C

  1. #1

    Struttura stack in C

    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?
    Poi non mi ricordo il simbolo ::= per cosa si usa?
    Grazie a tutti ciau ciau
    Il timore di gravi danni non può da solo giustificare la soppressione della libertà di parola e di riunione.
    Louis Brandeis 1927

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    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

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    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
    Il timore di gravi danni non può da solo giustificare la soppressione della libertà di parola e di riunione.
    Louis Brandeis 1927

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    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

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5

    ho capito

    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..
    Il timore di gravi danni non può da solo giustificare la soppressione della libertà di parola e di riunione.
    Louis Brandeis 1927

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.