Zum Inhalt
Benutzer:Riemer
Aus ProgrammingWiki
Archivierte Version vom 2012-03-21T21:10:44+00:00.
Aktuelle Version
Klassen-Definitionen
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; public void insert(Object theLink) { Object previous = null; Object current = first; while (current != null) { previous = current; current = current.next; } if (previous == null) { first = theLink; } else { previous.next = theLink; } theLink.next = current; } public void delete(int key) { Object previous = null; Object current = first; while (current != null && key != current.getKey()) { previous = current; current = current.next; } if (previous == null) { first = first.next; } else { previous.next = current.next; } } public Object find(int key) { Object current = first; while (current != null) { if (current.getKey() == key) { return current; } current = current.next; } 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 = 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 void delete(int key) { int hashVal = hashFunc(key); hashArray[hashVal].delete(key); } public Object find(int key) { int hashVal = hashFunc(key); Object theLink = hashArray[hashVal].find(key); return theLink; } return this; }
int aKey; Link dataItem; int size, initSize, keysPerCell = 10; size = 20; initSize = 10; hashTable = HashChain(size); for (int i = 0; i < initSize; i++) { aKey = (int) (java.lang.Math.random() * keysPerCell * size); dataItem = Link(aKey); hashTable.insert(dataItem); } aKey = 100; dataItem = Link(aKey); hashTable.insert(dataItem); // aKey = 100; // hashTable.delete(aKey); hashTable.displayTable(); aKey = 100; dataItem = hashTable.find(aKey); if (dataItem != null) { System.out.println("Found " + aKey); } else { System.out.println("Could not find " + aKey); }
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