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
SIZEcon 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
tope 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
ie inizializza con top. Visualizzastack[i]valore e decrementoivalore di uno (i--). - Ripeti il passaggio precedente finché il valore
idiventa0.
La mia domanda è perché utilizziamo top == -1 nello stack anziché top == 1 ?