Δηάιεμε 10: Λίζηεο Υινπνίεζε & Εθαξκνγέο

Σχετικά έγγραφα
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή

Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)

Δηάιεμε 9: Σηνίβεο:Υινπνίεζε & Εθαξκνγέο

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

ηδάζθσλ: εµήηξεο Εετλαιηπνύξ

Γηάιεμε 17: Γπαδηθά Γέληξα

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Φροντιστήριο 4 Σκελετοί Λύσεων

Δηάιεμε 8: Αθεξεκέλνη Τύπνη Δεδνκέλσλ

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

Constructors and Destructors in C++

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Δηάιεμε 13: Αιγόξηζκνη Ταμηλόκεζεο

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

Διάλεξη 14: Δομές Δεδομένων ΙΙI (Λίστες και Παραδείγματα)

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

ΗΥ-150 Πξνγξακκατησκόο Ταμηλόκεσε θαη Αλαδήτεσε

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

υναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:

Άσκηση 1 - Μοπυοποίηση Κειμένου

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

Εργαστήριο 5: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Διπλά Συνδεδεμένη Λίστα

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

x x x x tan(2 x) x 2 2x x 1

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

Ππογπαμμαηιζμόρ Ι (ΗΥ120)

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

Διδάσκων: Παναγιώτης Ανδρέου

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

γηα ηνλ Άξε Κσλζηαληηλίδε

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

Κινητός και Διάχυτος Υπολογισμός (Mobile & Pervasive Computing)

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

Δυναμικοί πίνακες. Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη κε ρξήζε πηλάθσλ. π.ρ. Σηνίβεο. α β γ δ. tail. head % N. Οπξέο Ν-1. θάησ όξην.

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

Σρήκα Α. Γξάθνπκε ηα ζηνηρεία ηνπ Πξνκεζεπηή θαη παηάκε Δηζαγσγή. Σρήκα Β1

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

Τν Πξόγξακκα ζα αλαθνηλσζεί, ακέζσο κεηά ηηο γηνξηέο ηνπ Πάζρα.

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής

EL Eνωμένη στην πολυμορυία EL A8-0046/319. Τροπολογία

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

Φροντιστήριο 4 Σκελετοί Λύσεων

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Δπαστηπιότητα 1 - ανάπτςξη, μεταγλώττιση, αποσυαλμάτωση και. εκτέλεση ππογπάμματορ

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Μηα ζπλάξηεζε κε πεδίν νξηζκνύ ην Α, ζα ιέκε όηη παξνπζηάδεη ηοπικό μέγιζηο ζην, αλ ππάξρεη δ>0, ηέηνην ώζηε:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α

Transcript:

Δηάιεμε 10: Λίζηεο Υινπνίεζε & Εθαξκνγέο Σηελ ελόηεηα απηή ζα κειεηεζνύλ ηα εμήο επηκέξνπο ζέκαηα: Εσθύγραμμες Απλά Σσνδεδεμένες Λίζηες (εύρεζη, ειζαγωγή, διαγραθή) Σύγκριζη Σσνδεδεμένων Λιζηών με Πίνακες Εσθύγραμμες Διπλά Σσνδεδεμένες Λίζηες (ειζαγωγή, εύρεζη) ηδάζθσλ: εµήηξεο Ζετλαιηπνύξ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-1

Λίζηεο Ο ΑΤΔ ιίζηα νξίδεηαη σο κηα αθνινπζία ζηνηρείσλ ζπλνδεπόκελε από πξάμεηο πνπ επηηξέπνπλ ειζαγωγή και εξαγωγή ζηοισείων ζε οποιαδήποηε θέζη ηηρ λίζηαρ. (εν ανηίθεζη με ηιρ ζηοίβερ και οςπέρ όπος ππάξειρ γίνονηαι μόνο ζηα άκπα) Κάπνηεο βαζηθέο πξάμεηο ησλ ιηζηώλ είλαη νη πην θάησ: Concatenate(L 1, L 2 ) Access(L, i) Sublist (L,i, j) δεκηνύξγεζε κηα λέα ιίζηα πνπ πεξηέρεη ηα ζηνηρεία ηεο ιίζηαο L 1 αθνινπζνύκελα από ηα ζηνηρεία ηεο L 2 επέζηξεςε ην i-νζηό ζηνηρείν ηεο L επέζηξεςε ηε ιίζηα πνπ μεθηλά από ην i-νζηό θαη ηειεηώλεη ζην j-νζηό ζηνηρείν ηεο L. Insert_After(L, x, i) εηζήγαγε ην x κεηά από ην i-νζηό ζηνηρείν ηεο L. Delete(L, i) αθαίξεζε ην i-νζηό ζηνηρείν ηεο L Σηε ζπλέρεηα ζα κειεηήζνπκε πινπνηήζεηο ηνπ ΑΤΔ κε δπλακηθή ρνξήγεζε κλήκεο. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-2

Επζύγξακκεο Απιά Σπλδεδεκέλεο Λίζηεο Μία ιίζηα κπνξεί λα πινπνηεζεί σο κηα ζπλδεδεκέλε ιίζηα (κε παξόκνην ηξόπν όπσο κηα ζηνίβα). L Πηζαλέο δειώζεηο θόκβσλ είλαη: typedef struct node { typedef struct { type data; NODE *head; struct node *next; NODE; LIST; int size; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-3

Επζύγξακκεο Απιά Σπλδεδεκέλεο Λίζηεο Πην θάησ νξίδνληαη θάπνηεο ρξήζηκεο πξάμεηο. Εύρεζη Κόμβοσ με ζσγκεκριμένο ζηοιτείο: int find(list *L, key val){ p = L->head; while (p!= NULL) { if (p->data == val) return 0; p = p->next; return 1; To p είλαη έλα αληίγξαθν ηεο δηεύζπλζεο ζηελ νπνία δείρλεη ην L->head ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-4

Επζύγξακκεο Απιά Σπλδεδεκέλεο Λίζηεο Με παξόκνην ηξόπν κπνξνύκε λα νξίζνπκε δηαδηθαζία findpointer(list *L, key val) πνπ επηζηξέθεη δείθηε πξνο θόκβν ηεο ιίζηαο πνπ πεξηέρεη ην ζηνηρείν val, αλ ππάξρεη. NODE *findpointer(list *list, int value) { NODE *p = list->head; while (p!= NULL) { if (p->val == value) { return p; p = p->next; Πσο ζα ην πινπνηήζεηε αλαδξνκηθά; return NULL; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-5

Επζύγξακκεο Απιά Σπλδεδεκέλεο Λίζηεο Ειζαγωγή Κόμβοσ x μεηά από ζσγκεκριμένο κόμβο y int insert(list *L, value x, value y) { NODE *r = findpointer(l,x); if r == NULL return 1; else { p = (NODE *)malloc(sizeof(node)); p->data = y; p->next = r->next; r->next = p; return 0; w r x p y z ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-6

Επζύγξακκεο Απιά Σπλδεδεκέλεο Λίζηεο Εμαγσγή Κόκβνπ κε ζπγθεθξηκέλε πιεξνθνξία x int delete(list *L, key x){ NODE *p = NULL, *p2 = NULL; p = list->head; if (p == NULL) return 1; LIST; if (p->val == value) {// the head is treated separately list->head = p->next; list->size--; free(p); return 0; else { while (p!= NULL) {// find x and delete it if (p->val == x) {// value found => delete p p2->next = p->next; free(p); list->size--; w x z return 0; // x not found move to next p2 = p; // use p2 as the previous position pointer p = p->next; return 1; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-7 p2 typedef struct { type val; struct node *next; NODE; typedef struct list { NODE *head; int size; p

Πίλαθεο vs. Σπλδεδεκέλεο Λίζηεο Όηαλ πινπνηνύκε ιίζηεο κε πίλαθεο ρξεηάδεηαη λα γλσξίδνπκε ην κέγηζην κέγεζνο ηεο ιίζηαο εθ ησλ πξνηέξσλ. Χπήζη Χώπος Πίνακαρ: θαηαιακβάλεηαη ν ίδηνο ρώξνο άζρεηα κε ηνλ αξηζκό ησλ ζηνηρείσλ πνπ είλαη απνζεθεπκέλα. Σςνδεδεμένη Λίζηα: κέγεζνο ηεο ιίζηαο (ρώξνο ελόο ζηνηρείνπ + ρώξνο ελόο δείθηε) Χπόνορ ειζαγωγήρ / εξαγωγήρ ζηελ αξρή Πίνακαρ: Ίζσο ρξεηαζηεί λα κεηαθηλήζνπκε όια ηα ζηνηρεία Σςνδεδεμένη Λίζηα: Δελ κεηαθηλείηαη ηίπνηε Χπόνορ εύπεζηρ k-οζηού ζηνηρείνπ Πίνακαρ: Καηεπζείαλ Σςνδεδεμένη Λίζηα: Φξεηάδεηαη λα πεξάζνπκε από K άιινπο θόκβνπο ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-8

Επζύγξακκεο Δηπιά Σπλδεδεκέλεο Λίζηεο Διπλά ζςνδεδεμένη λίζηα (doubly-linked list) νλνκάδεηαη κηα ιίζηα θάζε θόκβνο ηεο νπνίαο θξαηά πιεξνθνξίεο θαη γηα ηνλ επόκελν θαη γηα ηνλ πξνεγνύκελν θόκβν: prev next Με απηό ηνλ ηξόπν δίλεηαη ε επρέξεηα κεηαθίλεζεο κέζα ζηε ιίζηα θαη πξνο ηηο δύν θαηεπζύλζεηο. Παξάδεηγκα Λίζηαο: size top 3 4 42 54 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-9

Δηπιά Σπλδεδεκέλεο Λίζηεο Πνηεο δνκέο ρξεηάδνληαη γηα πινπνίεζε κηαο δηπιά ζπλδεδεκέλεο ιίζηαο; Έλαο θόκβνο νξίδεηαη από ην πην θάησ structure: typedef struct dlnode { int data; DLNODE; struct dlnode *prev; struct dlnode *next; O θόκβνο πνπ νξίδεη ηε δηπιά ζπλδεδεκέλε ιίζηα είλαη ν ίδηνο κε απηό πνπ νξίδεη κηα ζηνίβα: typedef struct { DLNODE *head; DLLIST; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-10

Δηπιά Σπλδεδεκέλεο Λίζηεο Πξνθαλώο ε εηζαγσγή ζηνηρείνπ ζε θάπνην ζεκείν κηαο δηπιά ζπλδεδεκέλεο ιίζηαο πεξηέρεη θάπνηα επιπλέον πολςπλοκόηηηα από ηελ εηζαγσγή ζε κηα απιά ζπλδεδεκέλε ιίζηα. Απηό γηαηί θάζε λένο θόκβνο πξέπεη λα ζπλδεζεί θαη με ηον επόμενο θαη κε ηνλ πποηγούμενο κόμβο ζηη λίζηα. Παξόκνηα, θαηά ηηο εμαγσγέο ζηνηρείσλ. Παξάδεηγκα εηζαγσγήο ηνπ ζηνηρείνπ 50 κεηά ην 42 ζηε ιίζηα ηεο δηαθάλεηαο 8: 3 4 42 54 50 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-11

Η ζπλάξηεζε put Να νξίζεηε ζπλάξηεζε put(l, x, y) ε νπνία ηνπνζεηεί ην ζηοισείο x κεηά από ην ζηοισείο y κέζα ζηε λίζηα l. put(dllist *l, int x, int y){ if (l->head == NULL) printf( The list is empty, no insertion was made\n ); else { putnode(l->head, x, y); ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-12

Η ζπλάξηεζε puttnode // Τοποθέηηζη x μεηά ηο y ξεκινώνηας από ηον δείκηη p void putnode(dlnode *p, int x, int y){ DLNODE *q; if (p == NULL) // reached end of list (and did not find y) printf( Element %d does not exist, no insertion was made\n, y); else if ( p->data == y ) { // position found do insertion q = (DLNODE *)malloc(sizeof(dlnode)); q->data = x; q->next = p->next; q->prev = p; (p->next)->prev = q; p->next= q; else // position not found search next putnode(p->next, x, y); 3 4 p 42 54 ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. 10-13 q 50