algorytm.org

Implementacja w Java



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Lista - Implementacja w Java
Ocena użytkownikóww: *****  / 10
SłabyŚwietny
Nadesłany przez Dominik Goździuk, 12 października 2011 21:14
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

Lista.java:
//Lista dwustronna dwukierunkowa
//(c) Dominik Goździuk
//www.algorytm.org

 
 class Wezel {
 	private String napis;
 	private Wezel nastepny;
 	private Wezel poprzedni;
 	
 	public Wezel() {
 		nastepny = null;
 		poprzedni = null;
 	}
 	
 	public Wezel(String napis, Wezel nastepny, Wezel poprzedni) {
 		this.napis = napis;
 		this.nastepny = nastepny;
 		this.poprzedni = poprzedni;
 	}
 	
 	public String pobierzNapis() {
 		return napis;
 	}
 	
 	public Wezel pobierzNastepny() {
 		return nastepny;
 	}
 	
 	public void ustawNastepny(Wezel nastepny) {
 		this.nastepny = nastepny;
 	}
 	
 	public Wezel pobierzPoprzedni() {
 		return poprzedni;
 	}
 	
 	public void ustawPoprzedni(Wezel poprzedni) {
 		this.poprzedni = poprzedni;
 	}
 }
 
 class ListaDD {
 	private Wezel poczatek;
 	private Wezel koniec;
 	
 	public ListaDD() {
 		poczatek = null;
 		koniec = null;
 	}
 	
 	public void wstaw(String napis) {
 		Wezel wezel = new Wezel(napis, null, null);
 		if (czyPusta()) {
 			poczatek = wezel;
 			koniec = wezel;
 		}
 		else {
 			Wezel pomoc = poczatek;
 			while (pomoc != null) {
 				if ((pomoc.pobierzNapis()).compareToIgnoreCase(napis) < 0) {
 					pomoc = pomoc.pobierzNastepny();
 				}
 				else {
 					if (pomoc == poczatek) {
 						wezel.ustawNastepny(pomoc);
 						pomoc.ustawPoprzedni(wezel);
 						poczatek = wezel;
 						break;
 					}
 					else {
 						wezel.ustawNastepny(pomoc);
 						wezel.ustawPoprzedni(pomoc.pobierzPoprzedni());
 						(pomoc.pobierzPoprzedni()).ustawNastepny(wezel);
 						pomoc.ustawPoprzedni(wezel);
 						break;
 						
 					}
 				}
 			}
 			if (pomoc == null) {
 				koniec.ustawNastepny(wezel);
 				wezel.ustawPoprzedni(koniec);
 				koniec = wezel;
 			}
 			
 		}
 		
 	}
 	
 	public void usun(String napis) {
 		Wezel pomoc = poczatek;
 		while (pomoc != null) {
 			if (pomoc.pobierzNapis() == napis) {
 				if (pomoc == poczatek) {
 					poczatek = (pomoc.pobierzNastepny());
 					break;
 				}
 				else if (pomoc == koniec) {
 					koniec = (pomoc.pobierzPoprzedni());
 					break;
 				}
 				else {
 					(pomoc.pobierzPoprzedni()).ustawNastepny(pomoc.pobierzNastepny());
 					(pomoc.pobierzNastepny()).ustawPoprzedni(pomoc.pobierzPoprzedni());
 					break;
 				}
 			}
 			pomoc = pomoc.pobierzNastepny();
 		}
 		if (pomoc == null) {
 			System.out.println();
 			System.out.println("Wyraz " + napis + " nie znajduje sie na liście");
 		}
 	}
 	
 	public boolean czyPusta() {
 		return (poczatek == null);
 	}
 	
 	public void wyswietlOdPoczatku() {
 		Wezel pomoc = poczatek;
 		System.out.println("Lista ułożona alfabetycznie od początku: ");
 		while (pomoc != null) {
 			System.out.print(pomoc.pobierzNapis() + "   ");
 			pomoc = pomoc.pobierzNastepny();
 		}
 	}
 	
 	public void wyswietlOdKonca() {
 		Wezel pomoc = koniec;
 		System.out.println("Lista ułożona alfabetycznie od końca: ");
 		while (pomoc != null) {
 			System.out.print(pomoc.pobierzNapis() + "   ");
 			pomoc = pomoc.pobierzPoprzedni();
 		}
 	}
 	
 	public void rozmiar() {
 		Wezel pomoc = poczatek;
 		int i = 0;
 		while (pomoc != null) {
 			i++;
 			pomoc = pomoc.pobierzNastepny();
 		}
 		System.out.println("Rozmiar listy: " + i);
 	}
 }
 
 public class Lista {
 	public static void main(String[] args) {
 		ListaDD lista = new ListaDD();
 		lista.wstaw("Metallica");
 		lista.wstaw("Judas Priest");
 		lista.wstaw("AC/DC");
 		lista.wstaw("Iron Maiden");
 		lista.wstaw("Black Sabbath");
 		lista.wstaw("Nirvana");
 		lista.rozmiar();
 		lista.wyswietlOdPoczatku();
 		lista.usun("Depeche Mode");
 		lista.wyswietlOdKonca();
 	}
 }
Komentarze
photo
-23 # bezbek123 2012-12-30 22:04
a komentarze ciężko dać do kodu?
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz