



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una introduzione alle pile e code in java, due strutture dati utilizzate per gestire e organizzare elementi in base al principio last-in-first-out (lifo) e first-in-first-out (fifo) rispettivamente. Il testo include esempi pratici di implementazione di pile e code utilizzando java, spiegazioni dettagliate dei metodi e operazioni comuni come push(), pop(), peek(), size() e isempty().
Tipologia: Schemi e mappe concettuali
1 / 5
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




import java.util.Stack; public class EsempioPila { public static void main(String[] args) { Stack
Code
public class ArrayQueue { private int[] array; private int head; private int tail; public ArrayQueue(int capacity) { array = new int[capacity]; head = 0; tail = -1; } public void enqueue(int element) { if (tail == array.length - 1) { // La coda è piena System.out.println("La coda è piena. Impossibile inserire elementi."); return; } tail++; array[tail] = element;
p.push(30); p.push(40); p.push(50); p.push(60); //tutto a mano perchè gli piace scrivere System.out.println(p.pop()); System.out.println(p.pop()); System.out.println(p.pop()); System.out.println(p.pop()); System.out.println(p.pop()); System.out.println(p.pop()); //coda è uguale Coda c = new Coda(); c.inserisci(10); c.inserisci(20); c.inserisci(30); System.out.println(c.estrai()); System.out.println(c.estrai()); c.inserisci(40); c.inserisci(50); c.inserisci(60); System.out.println(c.estrai()); System.out.println(c.estrai()); System.out.println(c.estrai()); System.out.println(c.estrai()); //alla fine rimuove tutti gli elemnti dalla coda //si diverte a riempirla e a svuotarla } } Pila public class Pila { //inizializza la classe private int[] pila; // array che rappresenta la pila private int testa; // indice dell'ultimo elemento inserito nella pila // costruttore della classe Pila public Pila() { pila = new int[5]; // creiamo un array di interi con 5 elementi testa = -1; // inizializziamo la testa a -1, indicando che la pila è vuota } // metodo per inserire un elemento nella pila, questo lo devi impare a memoria public void push(int valore) { if (testa == pila.length - 1) { // se la pila è piena... System.out.println("Pila piena!"); // ... stampiamo un messaggio di errore... return; // ... e restituiamo il controllo al chiamante } testa++; // incrementiamo la testa... pila[testa] = valore; // ... e inseriamo l'elemento nella posizione indicata dalla cima //il valore che va ad inserire è quello che trova nel main } // metodo per estrarre l'ultimo elemento inserito nella pila, questo lo devi impare a memoria public int pop() { if (testa == -1) { // se la pila è vuota... System.out.println("Pila vuota!"); // ... stampiamo un messaggio di errore... return -1; // ... e restituiamo un valore predefinito (in questo caso -1) per indicare che la pila è vuota } int valore = pila[testa]; // memorizziamo il valore dell'ultimo elemento inserito... testa--; // ... decrementiamo la testa... return valore; // ... e restituiamo il valore memorizzato
Coda
public class Coda { private int[] elementi; // array di interi che contiene gli elementi della coda private int testa, coda; // indice della testa e della coda della coda public Coda() { // costruttore che inizializza la coda elementi = new int[5]; // inizializza l'array con dimensione 5 testa = 0; // inizializza l'indice della testa a 0 coda = -1; // inizializza l'indice della coda a - } public boolean isVuota() { // metodo che restituisce true se la coda è vuota return (coda < testa); } public boolean isPiena() { // metodo che restituisce true se la coda è piena return (coda == elementi.length-1); } public void inserisci(int elemento) { // metodo che inserisce un elemento nella coda if (isPiena()) { // se la coda è piena, stampa un messaggio di errore e restituisce il controllo System.out.println("Errore: coda piena!"); return; } elementi[++coda] = elemento; // altrimenti, incrementa l'indice della coda e assegna l'elemento alla nuova posizione } public int estrai() { // metodo che estrae un elemento dalla coda if (isVuota()) { // se la coda è vuota, stampa un messaggio di errore e restituisce - System.out.println("Errore: coda vuota!"); return -1; } return elementi[testa++]; // altrimenti, restituisce l'elemento in testa alla coda e incrementa l'indice della testa } } Made by Nk