Zum Inhalt
Benutzer:Riemer
Aus ProgrammingWiki
Archivierte Version vom 2012-03-29T08:20:36+00:00.
Aktuelle Version
Verkettung
public Object Link(int d) { int data = d; Object next; public int getKey() { return data; } public void displayLink() { System.out.print(data + " "); } return this; } public Object List() { Object first = null; Object last = null; int steps = 0; public void insert(Object theLink) { steps = 0; if (first == null) { steps++; first = theLink; last = first; } else { steps++; last.next = theLink; last = last.next; } System.out.println("Einfügen von: " + theLink.getKey() + " - Schritte: " + steps); } public Object delete(int key) { Object previous = null; Object current = first; Object temp = null; steps = 0; while (current != null) { steps++; if (current.getKey() == key) { if (previous == null) { temp = first; first = first.next; System.out.println("Schritte: " + steps); return temp; } else { temp = current; previous.next = current.next; System.out.println("Schritte: " + steps); return current; } } else { previous = current; current = current.next; } } System.out.println("Schritte: " + steps); return null; } public Object find(int key) { steps = 0; Object current = first; while (current != null) { steps++; if (current.getKey() == key) { System.out.println("Schritte: " + steps); return current; } current = current.next; } System.out.println("Schritte: " + steps); return null; } public void displayList() { System.out.print("List: "); Object current = first; while (current != null) { current.displayLink(); current = current.next; } System.out.println(""); } return this; } public Object HashChain(int size) { private int arraySize = size; private Object[] hashArray = new Object[arraySize]; for (int i = 0; i < arraySize; i++) { hashArray[i] = List(); } public void displayTable() { for (int j = 0; j < arraySize; j++) { System.out.print(j + ". "); hashArray[j].displayList(); } } public int hashFunc(int key) { return key % arraySize; } public void insert(theLink) { int key = theLink.getKey(); int hashVal = hashFunc(key); hashArray[hashVal].insert(theLink); } public Object delete(int key) { int hashVal = hashFunc(key); Object theLink = hashArray[hashVal].delete(key); return theLink; } public Object find(int key) { int hashVal = hashFunc(key); Object theLink = hashArray[hashVal].find(key); return theLink; } return this; } public void fillHashTable(Object hashTable, int numberOfKeys){ for (int i = 0; i < numberOfKeys; i++) { key = (int) (Math.random() * 10 * size); dataItem = Link(key); hashTable.insert(dataItem); } }
size = 1; numberOfKeys = 10; hashTable = HashChain(size); fillHashTable(hashTable, numberOfKeys); hashTable.displayTable();
ausführen
size = 1; numberOfKeys = 10; hashTable = HashChain(size); fillHashTable(hashTable, numberOfKeys); hashTable.displayTable(); key = (int) (Math.random() * 10 * size); dataItem = hashTable.find(key); if (dataItem != null) { System.out.println(key + " wurde gefunden!"); } else { System.out.println(key + " konnte nicht gefunden werden!"); }
ausführen
size = 1; numberOfKeys = 10; hashTable = HashChain(size); fillHashTable(hashTable, numberOfKeys); hashTable.displayTable(); key = (int) (Math.random() * 10 * size); dataItem = hashTable.delete(key); if (dataItem != null) { System.out.println(key + " wurde gelöscht!"); } else { System.out.println(key + " konnte nicht gefunden werden!"); } hashTable.displayTable();
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten