Sono un principiante delle strutture dati.
Ho letto un'implementazione di uno stack usando un semplice array. L'algoritmo per questa implementazione è presentato di seguito.
Implementazione dello stack in termini di un array
Prima di implementare le operazioni effettive, per prima cosa segui i passaggi seguenti per creare uno stack vuoto.
- Includi tutti i file di intestazione utilizzati nel programma e definisci una costante
SIZE
con un valore specifico. - Dichiara tutte le funzioni utilizzate nell'implementazione dello stack.
- Crea un array monodimensionale con dimensioni fisse (
int stack[SIZE]
) - Definisci una variabile intera
top
e inizializza con-1
. (int top = -1
) - Nel menu principale del metodo di visualizzazione con l'elenco delle operazioni e effettuare chiamate di funzione adatte per eseguire l'operazione selezionata dall'utente nello stack.
push(value)
- Inserisce un valore nello stack
In una pila, push()
è una funzione utilizzata per inserire un elemento nello stack. In una pila, il nuovo elemento viene sempre inserito nella posizione superiore. La funzione push accetta un valore intero come parametro e inserisce tale valore nello stack. Possiamo utilizzare i seguenti passaggi per inserire un elemento nello stack ...
- Controlla se lo stack è PIENO. (
top == SIZE-1
) - Se è FULL, quindi visualizza "Stack is FULL !!! L'inserimento non è possibile !!!" e terminare la funzione.
- Se NON è FULL, incrementa il valore massimo di uno (
top++
) e impostastack[top]
su value (stack[top] = value
).
pop()
- Elimina un valore dallo stack
In una pila, pop()
è una funzione utilizzata per eliminare un elemento dalla pila. In una pila, l'elemento viene sempre eliminato dalla posizione superiore. La funzione pop non ha alcun valore come parametro. Possiamo usare i seguenti passaggi per far apparire un elemento dallo stack ...
- Controlla se lo stack è EMPTY. (
top == -1
) - Se è VUOTO, quindi visualizza "Lo stack è VUOTO !!! La cancellazione non è possibile !!!" e terminare la funzione.
- Se NON è VUOTO, elimina
stack[top]
e decrementa il valore massimo di uno (top--
).
display()
- Mostra gli elementi dello stack
Possiamo utilizzare i seguenti passaggi per visualizzare gli elementi di uno stack ...
- Controlla se lo stack è EMPTY. (
top == -1
) - Se è VUOTO, quindi visualizza "Stack is EMPTY !!!" e terminare la funzione.
- Se NON è EMPTY, quindi definisci una variabile
i
e inizializza con top. Visualizzastack[i]
valore e decrementoi
valore di uno (i--
). - Ripeti il passaggio precedente finché il valore
i
diventa0
.
La mia domanda è perché utilizziamo top == -1
nello stack anziché top == 1
?