Lab 3: Sorted List ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι18/10/2010.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Ε. ΠετράκηςΛίστες1  Λίστα: πεπερασμένη σειρά στοιχείων ίδιου τύπου  Οι πράξεις εξαρτώνται από τον τύπο της λίστας και όχι από τον τύπο δεδομένων  Λίστα:
Advertisements

Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
Ανασκόπηση σε Δείκτες, Ουρές, Στοίβες, Συνδεδεμένες Λίστες
ΜΑΘΗΜΑ 7ο Κυκλικές και Διπλά Συνδεδεμένες Λίστες,
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
Γλώσσα C & Unix Τμήμα Πληροφορικής, ΑΠΘ B’ εξάμηνο
Διακριτά Μαθηματικά ΙI Δυαδικά Δέντρα Αναζήτησης
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜMΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ.
Δομές Δεδομένων - Δυαδικά Δένδρα (binary trees)
Αλγόριθμοι Ταξινόμησης
11-1 ΜΑΘΗΜΑ 12 ο Γράφοι, Διάσχιση Γράφων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
1Πέτρος ΣτεφανέαςΠρογραμματιστικές Τεχνικές ΓΡΑΦΟΙ (GRAPHS) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Νίκος Παπασπύρου.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Lab 10: Hash Tables with Chaining 20/11/2009Panayiotis Charalambous.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Ε. ΠετράκηςΣτοίβες, Ουρές1 Στοίβες  Στοίβα: περιορισμένη ποικιλία λίστας  τα στοιχεία μπορούν να εισαχθούν ή να διαγραφούν μόνο από μια άκρη : λίστες.
Ουρά Προτεραιότητας: Heap
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.
Δυναμικη Δεσμευση Μνημης Συνδεδεμενες Λιστες (dynamic memory allocation, linked lists) Πως υλοποιουμαι προγραμματα που δεν γνωριζουμε πριν την εκτελεση.
ΕΠΛ231 – Δομές Δεδομένων και Αλγόριθμοι
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Αλγόριθμοι Ταξινόμησης
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Πίνακας Συμβόλων Symbol Table.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
6-1 ΜΑΘΗΜΑ 6 ο Ανασκόπηση σε Δείκτες, Συνδεδεμένες Λίστες, Ουρές, Στοίβες.
Templates Standard Template Library (STL) Exceptions Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμήμα Εφαρμοσμένης Πληροφορικής.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη C Ακέραιοι.
ΗΥ150 – Προγραμματισμός Ξ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Δομές Δεδομένων.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Lab 3: Sorted List ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι115/4/2015.
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
9-1 ΜΑΘΗΜΑ 9 ο Δυαδικά Δένδρα, Διάσχιση Δυαδικών Δένδρων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Δομές Δεδομένων.
Δομές Δεδομένων και Αρχεία Ενότητα 10: Κυκλικά και Διπλά Συνδεδεμένη Λίστα Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I.
Δομές Δεδομένων και Αρχεία
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Στοιχειώδεις Δομές Δεδομένων: Πίνακες και Λίστες
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Διερεύνηση γραφήματος
EPL231 – Data Structures and Algorithms
Ουρά Προτεραιότητας (priority queue)
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
19η Διάλεξη Εξωτερική Αναζήτηση και Β-δέντρα Ε. Μαρκάκης
14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης Ε. Μαρκάκης
מבני נתונים ויעילות אלגוריתמים
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Μεταγράφημα παρουσίασης:

Lab 3: Sorted List ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι18/10/2010

ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι2 Λίστα L

1. Ο απλός τρόπος node1  next = node2  next • Πρόβλημα? •Ο κόμβος Node2 παραμένει στην μνήμη 2. Ο ΣΩΣΤΟΣ τρόπος (απελευθέρωση αχρείαστης μνήμης) tempNode = node2 node1  next = node2  next free(tempNode) 8/10/2010ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι3 123

 Ευθύγραμμες Απλά Συνδεδεμένες Λίστες  Μία ταξινομημένη λίστα μπορεί να υλοποιηθεί ως μια συνδεδεμένη λίστα (με παρόμοιο τρόπο όπως μια στοίβα). 8/10/2010ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι4 L

// Declare the data type typedef struct _ListNode { Type data; struct _ListNode *next; } ListNode; // Declare a pointer to a List Node. typedef ListNode *ListNodePtr; // Declare a List typedef struct _List { int size; ListPtr firstNode; } List; // Declare a List Pointer typedef List *ListPtr; ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι58/10/2010

ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι6  Πιο κάτω ορίζονται κάποιες χρήσιμες πράξεις.  Εύρεση Κόμβου με συγκεκριμένο στοιχείο: bool find(List *L, Type val){ return findnode(L->top, val); } bool findnode(ListNode *P, Type val){ for ( Q = P; Q != NULL; Q = Q->next); if Q->data == val) return TRUE; return FALSE; }

8/10/2010ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι7  Με παρόμοιο τρόπο μπορούμε να ορίσουμε διαδικασία  findpointer(List *L, Type val)  Eπιστρέφει δείκτη προς κόμβο της λίστας που περιέχει το στοιχείο val, αν υπάρχει.  Εισαγωγή Κόμβου μετά από συγκεκριμένο κόμβο insert(List *L, Type x,y) z x y w

8/10/2010ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι8 insert(List *L, Type x,y) { r = findpointer(L,x); if (r == NULL) error else { q = (ListNode *)malloc(sizeof(NODE)); q->data = y; q->next = r->next; r->next = q; } }

 Εξαγωγή Κόμβου με συγκεκριμένη πληροφορία delete(List *L, key x){ if (L->top == NULL) return error Q = L->top; if Q->data == x L->top = Q->next; free(Q); else { Found = False; R = Q; Q = Q->next; while(Q != NULL & Found==False){ if (Q->data == x) Found = True ; else R = Q; Q = Q->next; } if Q == null error else R->next = Q->next; free(Q); } 8/10/2010ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι9 w x z

8/10/2010ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι10  ΙsEmpty(L) επέστρεψε true αν η λίστα L είναι κενή  PrintList(L) τυπώνει τη ταξινομημένη λίστα L  Ιnsert(x, L) εισήγαγε το x μέσα στη ταξινομημένη λίστα L διατηρώντας την L ταξινομημένη  Delete(x, L) αφαίρεσε το x από την ταξινομημένη λίστα L  Access(L, i) επέστρεψε το i-οστό στοιχείο της L  DeleteMin(L) επέστρεψε το μικρότερο στοιχείο της λίστας L και αφαίρεσε το από τη λίστα  DeleteMax(L) επέστρεψε το μέγιστο στοιχείο της λίστας L και αφαίρεσε το από τη λίστα

 Υλοποιήστε τα ακόλουθα:  BOOL isEmpty(SortedList *List): TRUE, αν η λίστα είναι κενή.  void initList(SortedList *List): Δημιουργία κενής λίστας.  void printList(SortedList *List): Τύπωσε τα περιεχόμενα της λίστας.  void insertData(SortedList *List, Type data): Εισήγαγε δεδομένα στη λίστα, φροντίζοντας η λίστα να παραμείνει ταξινομημένη.  BOOL deleteData(SortedList *List, Type data): Διάγραψε δεδομένα από τη λίστα. ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι118/10/2010

 Υλοποιημένα :  ListNode *accessNode(SortedList *List, int index): Επέστρεψε τον κόμβο στη θέση index.  BOOL deleteMin(SortedList *List): Διέγραψε το στοιχείο με την ελάχιστη τιμή.  BOOL deleteMax(SortedList *List): Διέγραψε το στοιχείο με την μέγιστη τιμή.  void clearList(SortedList *List): Διαγραφή των περιεχομένων της λίστας.  ListNode *findNode(SortedList *List, Type key): Βρές τον κόμβο με συγκεκριμένη τιμή.  BOOL exists(SortedList *List, Type key): Ελέγχει αν υπαρχει στοιχείο με τιμή key. ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι128/10/2010

13ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι