Possiamo implementare la struttura dei dati attraverso la lingua C. Esistono diversi tipi di struttura dei dati disponibili per archiviare e accedere ai dati in modo efficiente. Stack è uno di questi.
Uno stack è una versione modificata di array. Possiamo aggiungere o rimuovere un elemento all'estremità dello stack. Questa fine è al Superiore dello stack.
Stack è un modo specializzato per gestire, archiviare, inserire, eliminare, accedere ai dati. È astratto nella natura.
Array e stack
Rappresentazione
Possiamo accedere solo all'ultimo elemento inserito in stack. Questa è la parte superiore dello stack. Possiamo inserire o rimuovere dall'alto.
Questo è noto come l'ultimo in Fast Out (LIFO) e The Fast in Last Out (FILO).
Implementazione
Lo stack può essere implementato come segue:
-> Array -> Array dinamico -> Elenco collegamentiOperazione
-> Push -> popAlgoritmo Push: Push (Stack, Top, Maxstk, Articolo)
1. [Lo stack è pieno]
Se top == maxstkMostra messaggio: Traboccare e tornare
2. Imposta top = top + 1
3. Imposta Stack [Top] = Item
4. Ritorno
Algoritmo Pop: Pop (stack, top, oggetto)
1. [Elemento rimosso dallo stack]
Se top == -1Mostra il messaggio: Underflow and Return
2. Imposta elemento = stack [top]
3. Top: top -1
4. Ritorno
Stack usando l'array
Struct ArraystackQui, definiamo un tipo di dati definito dall'utente chiamato ArrayStack. Ha tre membri di dati denominati Top, Capacity e un puntatore chiamato *Array.
Notazione polacca
La notazione polacca sta scrivendo gli operatori di un'espressione prima o dopo il loro operand.
Modi di scrivere:
Infisso 2. Prefisso 3. Postfix
Infisso
Gli operatori sono mantenuti tra i due operandi.
Esempio: A + B
Prefisso
Gli operatori sono conservati prima dei loro operandi.
Esempio: + A B
Postfix
Gli operatori sono tenuti dopo i loro operandi.
Esempio: A B +
Convertire
1.
Infisso:2.
Infisso:3.
Infix :( a + b) / (c - d)Tutta questa conversione può essere eseguita usando lo stack. Ora, vogliamo mostrare come creare uno stack e come vengono inseriti l'elemento o i dati. Gli elementi possono essere rimossi dallo stack attraverso la programmazione.
Esempio di programmazione
#includereProduzione:
Spiegazione
Come abbiamo detto in precedenza, definiamo un tipo di dati definito dall'utente chiamato ArrayStack. Ha tre membri di dati denominati Top, Capacity e un array di punta. Quindi, definiamo una funzione denominata createstack in cui passiamo un valore che viene creato il blocco totale di array. La funzione Malloc () crea questo array e restituisce l'indirizzo allo stack variabile che è il tipo ArrayStack. L'array stack-> contiene l'indirizzo dell'array creato dalla funzione Malloc ().
Successivamente, definiamo un'altra funzione denominata full () per verificare se lo stack è pieno o no.
Crea un'altra funzione denominata per verificare se lo stack è vuoto.
Quindi, definiamo un'altra funzione denominata push () in cui inseriamo gli elementi uno per uno nello stack da un'estremità chiamata TOP. Per inserire l'elemento nello stack, controlliamo prima se lo stack è pieno.
Quindi, definiamo un'altra funzione denominata pop () in cui eliminiamo gli elementi uno per uno dallo stack da un'estremità chiamata top. Per rimuovere l'elemento nello stack, controlliamo prima se lo stack è vuoto.
Quindi, all'interno della funzione principale (), scriviamo la custodia Switch per offrire all'utente un'opzione di menu per selezionare la sua scelta se l'elemento viene inserito o eliminato nello stack.
Conclusione
Dalla discussione sullo stack, siamo giunti a raggiungere questa conclusione che lo stack è una struttura di dati ben definita che viene utilizzata per gestire i dati in modo strutturale. Il nostro stack della vita quotidiana è implementato in vari campi per archiviare, inserire o eliminare elementi.