Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
GB ( ) 5 1 ( ) ( ) ( /cm 2 ) 0.2 /30min·φ90 (5 /m 3 ) 0.4 /30min·φ90 (10 /m 3 ) /30min·φ90 (25 /m 3 )
Advertisements

Ε. ΠετράκηςΛίστες1  Λίστα: πεπερασμένη σειρά στοιχείων ίδιου τύπου  Οι πράξεις εξαρτώνται από τον τύπο της λίστας και όχι από τον τύπο δεδομένων  Λίστα:
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Εισαγωγικές έννοιες πληροφορικής
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
Προγραμματισμός PASCAL
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Ανασκόπηση σε Δείκτες, Ουρές, Στοίβες, Συνδεδεμένες Λίστες
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Κατανομή με ευρετήριο.
Πινακες (Arrays) Σημασια Συνταξη Αρχικοποιηση Προσβαση Παραμετροι
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Προγραμματισμός Ι Πίνακες •Ο πίνακας είναι μία συλλογή μεταβλητών ίδιου τύπου, οι οποίες είναι αποθηκευμένες σε διαδοχικές θέσεις μνήμης. Χρησιμοποιείται.
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
DATA MINING LECTURE 6 Mixture of Gaussians and the EM algorithm
ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜMΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ.
TEMPLATES STANDARD TEMPLATE LIBRARY ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ C Evangelos Theodoridis.
Αλγόριθμοι Ταξινόμησης
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 6: Java Collections Εβδομάδα 6: Συλλογές δεδομένων στην Java.
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
© GfK 2012 | Title of presentation | DD. Month
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Εργαστήριο Δασικής Διαχειριστικής & Τηλεπισκόπησης Ασκήσεις Δασικής Διαχειριστικής Ι Διδάσκων Δημήτριος Καραμανώλης, Επίκουρος Καθηγητής Άσκηση 4.
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Microsoft Excel 4.4 Τύποι και Συναρτήσεις
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Ε. ΠετράκηςΣτοίβες, Ουρές1 Στοίβες  Στοίβα: περιορισμένη ποικιλία λίστας  τα στοιχεία μπορούν να εισαχθούν ή να διαγραφούν μόνο από μια άκρη : λίστες.
Ουρά Προτεραιότητας: Heap
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Δομές Δεδομένων. Επιλογή δομής δεδομένων Κριτήρια: – Μέγεθος του προβλήματος – Πως θα χρησιμοποιηθεί Ενέργειες που καθορίζουν το κόστος: – Lookup: αναζήτηση/έλεγχος.
ΕΠΛ 223 Θεωρία και Πρακτική Μεταγλωττιστών7-1 Πίνακας Συμβόλων Πίνακας συμβόλων: δομή δεδομένων που χρησιμοποιείται για την αποθήκευση διαφόρων πληροφοριών.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Πίνακας Συμβόλων Symbol Table.
ΜΑΘΗΜΑ: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Templates Standard Template Library (STL) Exceptions Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμήμα Εφαρμοσμένης Πληροφορικής.
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΗΥ150 – Προγραμματισμός Ξ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Δομές Δεδομένων.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
ΤΕΙ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΕΡΡΕΣ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Πτυχιακή εργασία Μάρθα Τσολακίδου.
Οι Δομές Δεδομένων Ουρά και Στοίβα
EPL231 – Data Structures and Algorithms
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Οι Δομές Δεδομένων Ουρά και Στοίβα
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Μεταγράφημα παρουσίασης:

Lists– Λίστες 1

Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας τέτοιου είδους δομές, που ονομάζονται αυτοανα ϕ ορικές και είναι πολύ χρήσιμες στον προγραμματισμό, μπορούμε να οργανώσουμε δεδομένα με τρόπους που διευκολύνουν εξαιρετικά τη διαχείριση και επεξεργασία τους. Οι πλέον συνήθεις οργανώσεις δεδομένων μέσω αυτοανα ϕ ορικών δομών είναι οι συνδεδεμένες λίστες (ή, απλά, λίστες). 2

Λίστες Η υλοποίηση μιας λίστας είναι πολύ διαφορετική σε σχέση με τις στοίβες. Στις λίστες τα στοιχεία αποθηκεύονται σε απομονωμένα τμήματα μνήμης το καθένα, μαζί με την πληροφορία (συνήθως σε μορφή δεικτών) για τη θέση του επόμενου και του προηγούμενου στοιχείου. 3

Λίστες Η συγκεκριμένη εσωτερική δομή παρουσιάζει το μειονέκτημα ότι δεν επιτρέπει τυχαία προσπέλαση των στοιχείων. Αντίθετα, πρέπει να μετακινούμαστε διαδοχικά από το ένα στοιχείο στο άλλο ώσπου να φτάσουμε στο ζητούμενο. Η δομή όμως έχει ένα σημαντικό πλεονέκτημα: η προσθήκη ή διαγραφή στοιχείων σε οποιοδήποτε σημείο μιας λίστας είναι το ίδιο γρήγορη καθώς απαιτεί αλλαγές δεικτών και όχι αντιγραφή στοιχείων. 4

Λίστες Η χρήση της std::list προϋποθέτει τη συμπερίληψη του header. Ορισμός Ορισμός μιας λίστας γίνεται ως εξής: list L;: Δημιουργεί μια κενή λίστα. list L1(L2); : Δημιουργεί λίστα, αντίγραφο άλλης. list L(N);: Δημιουργεί λίστα N στοιχείων list L(N, elem); : Δημιουργεί λίστα από N αντίγραφα του elem. list L(beg, end); : Δημιουργεί λίστα από τα στοιχεία στο διάστημα [beg, end). 5

Λίστες Προσθήκη στοιχείων L1 = L2; : Αντιγράφει τα στοιχεία της L2 στην L1 καταστρέφοντας τα αρχικά. L.assign(N,elem); : Καταστρέφει τα στοιχεία της L και εισάγει N αντίγραφα του elem. L.assign(beg, end); : Καταστρέφει τα στοιχεία της L και εισάγει τα στοιχεία του διαστήματος [beg, end). L1.swap(L2); ή std::swap(L1,L2); : Εναλλάσσει τα στοιχεία των L1, L2. 6

Λίστες L.insert(pos,elem); : Εισάγει πριν τη θέση του pos, αντίγραφο του elem. L.insert(pos,N,elem); : Εισάγει πριν τη θέση του pos, N αντίγραφα του elem. L.insert(pos, beg, end); : Εισάγει πριν τη θέση του pos τα στοιχεία στο διάστημα [beg, end). L.push_back(elem); : Εισάγει αντίγραφο του elem στο τέλος της L. L.push_front(elem); : Εισάγει αντίγραφο του elem στην αρχή της L. L.resize(N); : Μεταβάλλει σε N το πλήθος των στοιχείων της L. 7

Παράδειγμα 1 8 // output  List is:

Λίστες Διαγραφή στοιχείων Διαγραφή στοιχείων από μια λίστα L, γίνεται ως εξής : L.pop_back(); : Διαγράφει το τελευταίο στοιχείο. L.pop_front(); : Διαγράφει το πρώτο στοιχείο. L.erase(pos); : Διαγράφει το στοιχείο στη θέση pos L.erase(beg,end); : Διαγράφει τα στοιχεία στο διάστημα [beg,end) L.clear(); : Διαγράφει όλα τα στοιχεία της L. 9

Παράδειγμα 2 10 // output  List is:

Λίστες Προσπέλαση στοιχείων Προσπέλαση στοιχείων μιας list γίνεται ως εξής : Με τις συναρτήσεις–μέλη front() και back(). Αυτές επιστρέφουν αναφορά στο πρώτο και τελευταίο στοιχείο αντίστοιχα χωρίς να ελέγχουν αν αυτά υπάρχουν. Με τη δράση του τελεστή (*) σε όνομα iterator. Προσέξτε ότι αν είναι τύπου const_iterator δεν μπορούμε να μεταβάλουμε την τιμή που ‘‘δείχνει’’ αλλά μόνο να τη διαβάσουμε. 11

Λίστες Επιπλέον συναρτήσεις - μέλη size() Το πλήθος των στοιχείων empty()True / False αν η λίστα είναι κενή ή όχι max_size()Το μέγιστο δυνατό πλήθος στοιχείων sort()ταξινομεί τη λίστα συγκρίνοντας τα στοιχεία µε τον τελεστή (<). reverse() αναστρέφει τη σειρά των στοιχείων unique() αφαιρεί συνεχόμενα επαναλαμβανόμενα στοιχεία L.remove(val);διαγράφει όλα τα στοιχεία της L µε τιμή val. L.remove_if(func); διαγράφει τα στοιχεία για τα οποία η func() δίνει true. 12

Παράδειγμα 3 13

Παράδειγμα 4: 14 // output  List is:

Διδάσκων: Παύλος Παυλικκάς15

Άσκηση 3 (Α’ γύρος 2012) 16 Χρησιμοποιώντας λίστες η επίλυση της άσκησης 3 του δοκιμίου του Α’ γύρου 2012 είναι πολύ απλή:

Άσκηση 1 (Training Α’ γύρος 2015) 17

Άσκηση 1 (Training Α’ γύρος 2015) 18

Άσκηση 1 (Training Α’ γύρος 2015) 19

Links Όλες οι εντολές του list class 20