Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεDespina Rokos Τροποποιήθηκε πριν 10 χρόνια
1
Lab 10: Hash Tables with Chaining 20/11/2009Panayiotis Charalambous
2
20/11/2009Panayiotis Charalambous Αφού περισσότερα από ένα κλειδιά μπορούν να πάρουν την ίδια τιμή από τη συνάρτηση κατακερματισμού, μπορούμε να θεωρήσουμε ότι κάθε θέση του πίνακα ‘δείχνει’ σε μια ευθύγραμμη απλά συνδεδεμένη λίστα. Για κάθε i, στη θέση Η[i] του πίνακα βρίσκουμε λίστα που περιέχει όλα τα κλειδιά που απεικονίζονται από τη συνάρτηση h στη θέση αυτή. Για να βρούμε κάποιο κλειδί k, πρέπει να ψάξουμε στη λίστα που δείχνεται στη θέση H[h(k)]. Εισαγωγές και εξαγωγές στοιχείων μπορούν να γίνουν εύκολα με βάση τις διαδικασίες συνδεδεμένων λιστών.
3
20/11/2009Panayiotis Charalambous 0 1 2 3 4 5 6 7 8 9 10 hsize = 11 34 67 46 114 26 17 85 34 Εισαγωγή: 17 85 114264667
4
20/11/2009Panayiotis Charalambous Πίνακας κατακερματισμού σταθερού μεγέθους (TABLE_SIZE): void destroyTable(HashTable * table); void insertEntry(HashTable *table, Student *student); void deleteEntry(HashTable *table, const char *studentID); HashEntry *findEntry(HashTable *table, const char *studentID); Εισαγωγή 10000 φοιτητών με τυχαίο ID Τύπωμα του πίνακα κατακερματισμού
5
20/11/2009Panayiotis Charalambous /***************************************************************************** * * -------------------------------- hashpjw ------------------------------- * * *****************************************************************************/ int hashpjw(const void *key) { const char *ptr; int val; val = 0; ptr = key; while (*ptr != '\0') { int tmp; val = (val << 4) + (*ptr); if (tmp = (val & 0xf0000000)) { val = val ^ (tmp >> 24); val = val ^ tmp; } ptr++; } return val % PRIME_TBLSIZ; }
6
20/11/2009Panayiotis Charalambous
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.