Klasa LinkedList - przykład zastosowania

Klasa LinkedList jest jedną z klas bibliotecznych dostępnych w standardowej Javie. Jest to prosta implementacja listy powiązanej z wykorzystaniem typów generycznych (pisałem o nich tutaj Typy generyczne). Na jej bazie możemy napisać implementację w pełni dynamicznego stosu (inne sposoby tworzenia stosu to Stos - implementacja tablicowa oraz Lista powiązana - własna implementacja). Nasze rozwiązanie dzięki zastosowaniu typów generycznych umożliwi obsługę dowolnych obiektów.

// wykorzystujemy klasę LinkedList z pakietu java.util
import java.util.*;

/**
 * Stos - implementacja z wykorzystaniem klasy LinkedList
 * @author kodatnik.blogspot.com 
 */ 
public class Stos<E> {
 // lista przechowująca elementy stosu
 // wierzchołek stosu to ostatni element listy
 private LinkedList<E> lista;

 // konstruktor domyślny
 public Stos() {
  // tworzymy nowy obiekt klasy LinkedList
  lista = new LinkedList<E>();
 }
 
 // metoda odkładająca na stosie elementy
 public void push(E element) {
  // dodajemy element do listy
  lista.add(element);
 }

 // metoda ściąga ze stosu element
 public E pop() {
  // zwracamy element znajdujący się na końcu listy
  return lista.removeLast(); 
 }
 
 // metoda sprawdza czy stos jest pusty
 public boolean czyPusty() {
  // zwracamy prawdę lub fałsz
  return (lista.isEmpty());
 }
 
 // metoda "podgląda" co jest na wierzchołku stosu
 public E peek() {
  // zwracamy element z wierzchołka stosu (nie usuwamy go z listy)
  return lista.getLast();
 }
 
 // metoda wyświetla wszystkie elementy stanowiące stos
 public void wyswietl() {
  // wykorzystujemy metodę toString() z klasy LinkedList
  System.out.println(lista);
 }
 
 // metoda zwraca rozmiar stosu (liczbę jego elementów)
 public int rozmiar() {
  return lista.size(); 
 }
}
Poniżej przykładowe zastosowanie klasy Stos (przechowujemy na stosie łańcuchy tekstowe czyli obiekty klasy String).
public class TestujemyStos { 
 public static void main(String args[]) {
    
  // zakładamy nowy stos łańcuchów tekstowych
  Stos<String> s = new Stos<String>();
     
  // odkładamy kolejne elementy na stos
  s.push("Ala");
  s.push("Ola");
  s.push("Marcin");
     
  // wyświetlamy zawartość stosu
  s.wyswietl();

  // wyświetlamy element znajdujący się na szczycie (bez jego ściągania)
  System.out.println(s.peek());
     
  // ściągamy element ze stosu
  s.pop();     
      
  // wyświetlamy zawartość stosu
  s.wyswietl();    
      
  // wyświetlamy rozmiar stosu
  System.out.println (s.rozmiar());
 }
}
Uruchomiona aplikacja:
[Ala, Ola, Marcin]
Marcin
[Ala, Ola]
2
W oparciu o klasę LinkedList można utworzyć wiele innych struktur danych np. Kolejki czy też Drzewa.


0 Komentarzy - Klasa LinkedList - przykład zastosowania

Prześlij komentarz

Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)

Popularne posty