Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A 12 21 25 32 44 58 60 72 - - 5.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A 12 21 25 32 44 58 60 72 - - 5."— Μεταγράφημα παρουσίασης:

1 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A 12 21 25 32 44 58 60 72 - - 5 5 8 8 Χρησιμοποιεί πρόσθετους συνδέσμους στους κόμβους μιας συνδεδεμένης λίστας επιτάχυνση της αναζήτησης με παράλειψη μεγάλων τμημάτων της λίστας Μια λίστα παράλειψης είναι μια διατεταγμένη συνδεδεμένη λίστα της οποίας κάθε κόμβος περιέχει μεταβλητό πλήθος συνδέσμων. Οι σύνδεσμοι του επιπέδου υλοποιούν απλά συνδεδεμένες λίστες οι οποίες παραλείπουν τους κόμβους με λιγότερους από συνδέσμους.

2 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A 12 21 25 32 44 58 60 72 - - 5 5 8 8 Χρησιμοποιεί πρόσθετους συνδέσμους στους κόμβους μιας συνδεδεμένης λίστας επιτάχυνση της αναζήτησης με παράλειψη μεγάλων τμημάτων της λίστας Μια λίστα παράλειψης είναι μια διατεταγμένη συνδεδεμένη λίστα της οποίας κάθε κόμβος περιέχει μεταβλητό πλήθος συνδέσμων. Οι σύνδεσμοι του επιπέδου υλοποιούν απλά συνδεδεμένες λίστες οι οποίες παραλείπουν τους κόμβους με λιγότερους από συνδέσμους. Αναζήτηση 58

3 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Item searchR(link t, Key v, int k) { if ( eq(v, key(t->item)) ) return t->item; if ( less(v, key(t->next[k]->item) ) { if (k==0) return NULLitem; return searchR(t, v, k-1); } return searchR(t->next[k], v, k); } Item Stsearch(Key v) { return searchR(head, v, lgN); } 12 21 25 32 44 58 60 72 - - 5 5 8 8 Αναζήτηση 58 επίπεδο αναζήτησης

4 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A 12 21 25 32 44 58 - - 5 5 8 8 Λίστα παράλειψης με παράμετρο Κάθε κόμβους υπάρχει ένας με συνδέσμους

5 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Λίστα παράλειψης με παράμετρο Κάθε κόμβους υπάρχει ένας με συνδέσμους Αν έχουμε κόμβους τότε

6 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Λίστα παράλειψης με παράμετρο Κάθε κόμβους υπάρχει ένας με συνδέσμους Αν έχουμε κόμβους τότε Τυχαιοποιημένη λίστα παράλειψης Ένας κόμβος έχει συνδέσμους με πιθανότητα

7 μέγιστο δυνατό επίπεδο Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A typedef struct Stnode* link; struct SΤnode { Item item; link* next; int sz; } static link head, z; static int N, lgN; link NEW(Item item, int k) { int i; link x = malloc(sizeof *x); x->next = malloc(k*sizeof(link)); x->item = item; x->sz = k; for (i=0; i next[i] = z; return x; } void STinit(int max) { N = 0; lgN = 0; z = NEW(NULLitem, 0); head = NEW(NULLitem, lgNmax); } Αρχικοποίηση λίστας παράλειψης item next[k-1] next[0] επίπεδο κόμβου πίνακας δεικτών

8 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Εισαγωγή σε λίστα παράλειψης Εισαγωγή 44 12 21 25 32 60 - - 5 5 58

9 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Εισαγωγή σε λίστα παράλειψης 44 Εισαγωγή 44 12 21 25 32 60 - - 5 5 58

10 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Εισαγωγή σε λίστα παράλειψης 44 Εισαγωγή 44 12 21 25 32 60 - - 5 5 58

11 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A int randX() {int i, j, r = rand(); for (i = 1; j = 2; i < lgNmax; i++, j += j) if (r > RAND_MAX/j) break; if (i > lgN) lgN = i; return i; } void insertR(link t, link x, int k) {Key v = key(x->item); if ( less(v, key(t->next[k]->item)) ) { if (k sz) {x->next[k] = t->next[k]; t->next[k] = x;} if (k == 0) return; insertR(t, x, k-1); return; } insertR(t->next[k], x, k); } void SΤinsert(Key v) { insertR(head, NEW(v, randX(), lgN); N++; } Εισαγωγή σε λίστα παράλειψης με παράμετρο τυχαία επιλογή επιπέδου του νέου κόμβου

12 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Λίστα παράλειψης με παράμετρο Ιδιότητα: Η αναζήτηση και η εισαγωγή σε μια τυχαιοποιημένη λίστα παράλειψης με παράμετρο απαιτούν κατά μέσο όρο περίπου συγκρίσεις Ιδιότητα: Mια τυχαιοποιημένη λίστα παράλειψης με παράμετρο έχει κατά μέσο όρο συνδέσμους

13 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A void deleteR(link t, Key v, int k) {link x = t->next[k]; if ( !less(key(x->item), v) ) { if ( eq(v, key(x->item)) ) { t->next[k] = x->next[k]; } if (k == 0) { free(x); return; } deleteR(t, v, k-1); return; } deleteR(t->next[k], v, k); } void STdelete(Key v) { deleteR(head, v, lgN); N--; } Διαγραφή από λίστα παράλειψης

14 Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Αναπαράσταση (2,4)-δένδρου με λίστα παράλειψης 2 2 3 3 4 4 5 5 7 7 - - 1 1 6 6 9 9 10 11 12 8 8 6 29 11 7 8103 4 5112 Κάθε κόμβος έχει αριθμό συνδέσεων ίσο με το ύψος του στο 2-3-4 δένδρο


Κατέβασμα ppt "Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A 12 21 25 32 44 58 60 72 - - 5."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google