ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7

Dimitris Psounis
Dimitris PsounisTeacher & Manager at Δημήτρης Ψούνης - Υπηρεσίες Εκπαίδευσης
∆οµές ∆εδοµένων σε C
Μάθηµα 7:
∆υαδικά ∆ένδρα Αναζήτησης
∆ηµήτρης Ψούνης
Περιεχόµενα Μαθήµατος
Α. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
1. Ορισµός ∆∆Α
2. Βασικές Πράξεις
3. Υλοποίηση σε C: Αναζήτηση σε ∆∆Α
4. Υλοποίηση σε C: Εισαγωγή σε ∆∆Α
5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α
Β. Ασκήσεις
2∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
1. Ορισµός ∆υαδικού ∆ένδρου Αναζήτησης
3∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
Το «∆υαδικό ∆ένδρο Αναζήτησης» (∆∆Α) είναι ένα δένδρο στο οποίο σε κάθε κόµβο έχει
αποθηκευτεί µία τιµή v και επιπλέον:
• Στις κορυφές του αριστερού υποδένδρου, έχουν αποθηκευτεί τιµές µικρότερες της v.
• Στις κορυφές του δεξιού υποδένδρου έχουν αποθηκευτεί τιµές µεγαλύτερες της v.
Σηµαντικό: Η ενδοδιατεταγµένη διαδροµή σε ένα ∆∆Α επιστρέφει τους αριθµούς του ∆∆Α σε αύξουσα σειρά
Παραδείγµατα ∆υαδικών ∆ένδρων Αναζήτησης:
11
146
19134
5 2617
∆∆Α που αποθηκεύει αριθµούς
john
ben pam
alice eve max tom
∆∆Α που αποθηκεύει συµβολοσειρές
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
2. Βασικές Πράξεις
4∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
Οι βασικές πράξεις σε ένα δυαδικό δένδρο αναζήτησης (επεκτείνοντας το δυαδικό δένδρο) είναι:
• Εισαγωγή ενός στοιχείου στο δένδρο (insert_BST)
• Αναζήτηση ενός στοιχείου στο δένδρο (search_BST)
• ∆ιαγραφή ενός στοιχείου από το δένδρο (delete_BST)
Παρατήρηση: Επεκτείνουµε τον ορισµό του ∆υαδικού ∆ένδρου, αφού η εισαγωγή και η διαγραφή
κόµβων από το ∆∆Α θα ακολουθούν κάποιο συγκεκριµένο αλγόριθµο, ώστε µετά από την εκτέλεση
των πράξεων το δένδρο να εξακολουθεί να έχει την ιδιότητα του ∆∆Α.
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
3. Υλοποίηση σε C: Αναζήτηση σε ∆∆Α
5∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
Η συνάρτηση «Αναζήτηση» ψάχνει για το στοιχείο Χ στο δυαδικό δένδρο αναζήτησης και
επιστρέφει ΝΑΙ/ΌΧΙ ανάλογα µε το αν το στοιχείο υπάρχει στο δένδρο:
Σκιαγράφηση αλγορίθµου:
Θέτει Κ = ρίζα του δένδρου
Επανέλαβε όσο Κ ≠ KENO
Αν (Χ = Κ)
Επέστρεψε ΝΑΙ
Αλλιώς αν (Χ > Κ)
Θέσε Κ=δεξί παιδί της Κ.
Αλλιώς αν (Χ < Κ)
Θέσε Κ=αριστερό παιδί της Κ.
Τέλος-Επανάληψης
Επέστρεψε ΟΧΙ
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
3. Υλοποίηση σε C: Αναζήτηση σε ∆∆Α
6∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
Παράδειγµα Αναζήτησης του δεδοµένου 8 (κόκκινο χρώµα) και του 17 (µπλέ χρώµα)
Αναζήτηση του 8: 10(αριστερά), 6(δεξιά), 7(δεξιά), 8 (βρέθηκε). Απάντηση: ΝΑΙ
Αναζήτηση του 17: 10(δεξιά), 14 (δεξιά), 19(αριστερά). ΚΕΝΟ. Απάντηση: ΟΧΙ
10
146
1975
82
3
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
3. Υλοποίηση σε C: Αναζήτηση σε ∆∆Α
7∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
/* TR_search_BST(): anazitisi tou x sto
DDA me riza root */
int TR_search_BST(TREE_PTR root, elem x)
{
TREE_PTR current;
current=root;
while (current!=NULL)
{
if (x == current->data)
return TRUE;
else if (x < current->data)
current=current->left;
else // x > current->data
current=current->right;
}
return FALSE;
}
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
4. Υλοποίηση σε C: Εισαγωγή σε ∆∆Α
8∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
Σκιαγράφηση αλγορίθµου:
Αν Τ είναι άδειο, τοποθέτησε το x ως ρίζα. Επέστρεψε TRUE
Θέσε Κ=ρίζα του δένδρου
Επανέλαβε:
Αν x==K
Επέστρεψε FALSE
Αλλιώς αν x<K
Αν Κ δεν έχει αριστερό παιδί:
Κατασκεύασε αριστερό παιδί της K με δεδομένο x. Επέστρεψε TRUE
Αλλιώς
Θέσε K=αριστερό παιδί του Κ.
Αλλιώς // x>K
Αν Κ δεν έχει δεξί παιδί:
Κατασκεύασε δεξί παιδί του K με δεδομένο x. Επέστρεψε TRUE
Αλλιώς
Θέσε K=δεξί παιδί του Κ.
Ο αλγόριθµος «Εισαγωγής σε ∆∆Α» δεδοµένου ενός ∆∆Α Τ και ενός δεδοµένου x:
• Αν το x υπάρχει στο δένδρο Τ επιστρέφει FALSE
• Αν το x δεν υπάρχει στο δένδρο Τ το εισάγει σε θέση που σέβεται το ∆∆Α.
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
4. Υλοποίηση σε C: Εισαγωγή σε ∆∆Α
9∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
Παράδειγµα Εισαγωγής του δεδοµένου 17
10
146
1975
82
3
10
146
1975
82
3
17
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
4. Υλοποίηση σε C: Εισαγωγή σε ∆∆Α
10∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
/* TR_insert_BST(): eisagwgi tou x
sto DDA me riza root */
int TR_insert_BST(TREE_PTR *root, elem x)
{
TREE_PTR current;
/* 1. Eisagwgi se adeio dentro */
if (*root==NULL)
{
TR_insert_root(root, x);
return TRUE;
}
/* 2. Anazitisi + Eisagwgi sto dendro */
current=*root;
while (1)
{
if (x == current->data)
return FALSE;
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
4. Υλοποίηση σε C: Εισαγωγή σε ∆∆Α
11∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
else if (x < current->data)
{
if (current->left==NULL)
{
TR_insert_left(current,x);
return TRUE;
}
else
current=current->left;
}
else // x > current->data
{
if (current->right==NULL)
{
TR_insert_right(current,x);
return TRUE;
}
else
current=current->right;
}
}
}
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α
12∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
Ο αλγόριθµος «∆ιαγραφής σε ∆∆Α» παίρνει ως όρισµα ένα δένδρο Τ και ένα δεδοµένο x (που
υπάρχει στο δένδρο) και ξεχωρίζει 3 περιπτώσεις:
• Αν ο κόµβος του x δεν έχει παιδιά, τότε διαγράφουµε τον κόµβο.
10
146
1975
82
3
Παράδειγµα: ∆ιαγραφή του «8»
ΠΡΙΝ 10
146
1975
2
3
ΜΕΤΑ
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α
13∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
• Αν ο κόµβος του x έχει ένα παιδί, τότε διαγράφουµε τον κόµβο και το παιδί του τον
αντικαθιστά.
10
146
1975
82
3
Παράδειγµα: ∆ιαγραφή του «5»
ΠΡΙΝ ΜΕΤΑ 10
146
197
8
2
3
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α
14∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
• Αν ο κόµβος του x έχει δύο παιδιά, τότε: Βρίσκουµε τον επόµενο στην ενδοδιατεταγµένη
διαδροµή και αντικαθιστούµε τον x µε αυτόν.
• Περίπτωση 1: Το δεξί παιδί του x δεν έχει αριστερό παιδί
• Τότε ο x αντικαθίσταται από το δεξί παιδί του (που διατηρεί το δεξί υποδένδρο του).
10
146
1975
82
3
Παράδειγµα: ∆ιαγραφή του «6»
ΠΡΙΝ ΜΕΤΑ 10
147
1985
2
3
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α
15∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
• Αν ο κόµβος του x έχει δύο παιδιά, τότε: Βρίσκουµε τον επόµενο στην ενδοδιατεταγµένη
διαδροµή (y) και αντικαθιστούµε τον x µε αυτόν.
• Περίπτωση 2: Το δεξί παιδί του x έχει αριστερό παιδί
• Ο y παίρνει τη θέση του x
• Ο κόµβος του y αντικαθίσταται από το δεξί υποδένδρο του y
Παράδειγµα: ∆ιαγραφή του «10»
ΠΡΙΝ
ΜΕΤΑ
10
147
19135
2 11
12
11
147
19135
2 12
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α
16∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
/* TR_delete_BST(): diagrafi tou x
apo to DDA me riza root */
int TR_delete_BST(TREE_PTR *root, elem x)
{
TREE_PTR current, parent, nextOrdered;
int p; /* 1. deksi paidi, 2. aristero paidi tou current */
int temp;
/* 1. Anazitisi tou komvou */
parent=NULL;
current=*root;
while (current!=NULL)
{
if (x == current->data)
break;
else if (x < current->data)
{
parent=current;
p=1;
current=current->left;
}
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α
17∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
else // x > current->data
{
parent=current;
p=2;
current=current->right;
}
}
if (current==NULL)
return FALSE;
/* 2.1 An den exei paidia */
if (current->left==NULL && current->right==NULL)
{
free(current);
if (parent==NULL)
*root=NULL;
else
if (p==1)
parent->left=NULL;
else
parent->right=NULL;
return TRUE;
}
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α
18∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
/* 2.2 Exei mono aristero paidi */
else if (current->left!=NULL && current->right==NULL)
{
if (parent==NULL)
*root=current->left;
else
if (p==1)
parent->left=current->left;
else
parent->right=current->left;
free(current);
return TRUE;
}
/* 2.3 Exei mono deksi paidi */
else if (current->left==NULL && current->right!=NULL)
{
if (parent==NULL)
*root=current->right;
else
if (p==1)
parent->left=current->right;
else
parent->right=current->right;
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α
19∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
free(current);
return TRUE;
}
/* 2.4 Exei aristero kai deksi paidi */
else
{
/* 2.4.1 Vriskei ton epomeno stin endodiatetagmeni */
p=1;
nextOrdered=current->right;
while (nextOrdered->left!=NULL)
{
parent=nextOrdered;
nextOrdered=nextOrdered->left;
p=2;
}
/*2.4.2 Antallassei times me ton komvo pou diagrafetai */
current->data=nextOrdered->data;
A. Θεωρία
1. ∆υαδικό ∆ένδρο Αναζήτησης
5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α
20∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
/*2.4.3 Diagrafei ton komvo */
if (p==1) /*2.4.3.1 O epomenos einai to deksi paidi */
{
current->right=nextOrdered->right;
free(nextOrdered);
}
else
{
parent->left=nextOrdered->right;
free(nextOrdered);
}
}
}
Β. Ασκήσεις
Εφαρµογή 1: Μελέτη Προγράµµατος
∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης 21
Μελετήστε το project tree.dev στο οποίο υλοποιούνται οι βασικές πράξεις των δυαδικών
δένδρων αναζήτησης που µελετήσαµε στο µάθηµα.
Β. Ασκήσεις
Εφαρµογή 2: Εκτέλεση «µε το χέρι»
∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης 22
1. Εισάγετε τα ακόλουθα δεδοµένα σε ένα ∆∆Α: «10 6 3 9 12 5 4 2 1 8».
2. ∆ιαγράψτε τον κόµβο 12
3. Εισάγετε τον κόµβο 7
Β. Ασκήσεις
Εφαρµογή 2: Εκτέλεση «µε το χέρι»
∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης 23
4. ∆ιαγράψτε τον κόµβο 3
5. ∆ώστε την ενδοδιατεταγµένη διαπέραση του δένδρου
6. Κατασκεύαστε πλήρες δυαδικό δένδρο αναζήτησης που να περιέχει τα περιεχόµενα του
δένδρου .
1 of 23

Recommended

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 by
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 Dimitris Psounis
3.9K views40 slides
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4 by
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4Dimitris Psounis
5.8K views25 slides
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 by
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 Dimitris Psounis
6.8K views20 slides
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 by
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 Dimitris Psounis
4.2K views27 slides
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ by
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑDimitris Psounis
3.5K views12 slides
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 by
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8Dimitris Psounis
3.2K views20 slides

More Related Content

What's hot

ΠΛΗ10 ΜΑΘΗΜΑ 2.7 by
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 Dimitris Psounis
3.2K views43 slides
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11 by
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11Dimitris Psounis
4K views20 slides
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 by
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3Dimitris Psounis
5.7K views52 slides
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 by
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 Dimitris Psounis
5.2K views27 slides
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ by
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥDimitris Psounis
4K views30 slides
Η Γλώσσα C - Μάθημα 1 by
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Dimitris Psounis
15.1K views23 slides

What's hot(20)

ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 by Dimitris Psounis
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
Dimitris Psounis5.7K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9
Dimitris Psounis5.2K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Dimitris Psounis4K views
Η Γλώσσα C - Μάθημα 1 by Dimitris Psounis
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1
Dimitris Psounis15.1K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
Dimitris Psounis12.9K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Dimitris Psounis4.2K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Dimitris Psounis7.7K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Dimitris Psounis17.5K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Dimitris Psounis9.7K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
Dimitris Psounis3K views
Η Γλώσσα C - Μάθημα 2 by Dimitris Psounis
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2
Dimitris Psounis8.8K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
Dimitris Psounis15.3K views
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.6K views
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 by Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
Dimitris Psounis3.4K views

More from Dimitris Psounis

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ by
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣDimitris Psounis
4.9K views25 slides
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ) by
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Dimitris Psounis
641 views7 slides
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ) by
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)Dimitris Psounis
475 views8 slides
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ by
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣDimitris Psounis
1.4K views29 slides
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ by
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣDimitris Psounis
5.9K views30 slides
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ) by
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Dimitris Psounis
3.8K views8 slides

More from Dimitris Psounis(20)

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ by Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Dimitris Psounis4.9K views
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ) by Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Dimitris Psounis641 views
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ) by Dimitris Psounis
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
Dimitris Psounis475 views
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ by Dimitris Psounis
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
Dimitris Psounis1.4K views
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ by Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Dimitris Psounis5.9K views
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ) by Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Dimitris Psounis3.8K views
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C by Dimitris Psounis
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
Dimitris Psounis2.3K views
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p) by Dimitris Psounis
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
Dimitris Psounis331 views
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6 by Dimitris Psounis
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
Dimitris Psounis2.9K views
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5 by Dimitris Psounis
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
Dimitris Psounis899 views
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.5K views
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 by Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
Dimitris Psounis2.5K views
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis4.6K views
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 by Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
Dimitris Psounis4.5K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.2K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.1K views
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ) by Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.8K views

Recently uploaded

ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ. by
ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.ssuser43d27b
11 views8 slides
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf by
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdfssuser9e6212
423 views15 slides
Politexneio_2023.pptx by
Politexneio_2023.pptxPolitexneio_2023.pptx
Politexneio_2023.pptx36dimperist
40 views6 slides
Τεστ στην Πληροφορική by
Τεστ στην ΠληροφορικήΤεστ στην Πληροφορική
Τεστ στην ΠληροφορικήPenelope Markellou
355 views2 slides
ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39 by
ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39
ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39ssuser43d27b
17 views13 slides
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ... by
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...gymkeram
14 views30 slides

Recently uploaded(20)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ. by ssuser43d27b
ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.
ssuser43d27b11 views
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf by ssuser9e6212
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf
2023_11_29_Φ_251_136798_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗΣ_ΔΗΛΩΣΗΣ_ΓΕΛ_2024.pdf
ssuser9e6212423 views
Politexneio_2023.pptx by 36dimperist
Politexneio_2023.pptxPolitexneio_2023.pptx
Politexneio_2023.pptx
36dimperist40 views
ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39 by ssuser43d27b
ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39
ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39
ssuser43d27b17 views
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ... by gymkeram
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...
gymkeram14 views
Γυμνάσιο Κεραμωτής - Γιορτή 28ης Οκτωβρίου και Παράδοση Σημαίας 27.11.2023 by gymkeram
Γυμνάσιο Κεραμωτής - Γιορτή 28ης Οκτωβρίου και Παράδοση Σημαίας 27.11.2023Γυμνάσιο Κεραμωτής - Γιορτή 28ης Οκτωβρίου και Παράδοση Σημαίας 27.11.2023
Γυμνάσιο Κεραμωτής - Γιορτή 28ης Οκτωβρίου και Παράδοση Σημαίας 27.11.2023
gymkeram28 views
Triti_Hlikia_2023.pptx by 36dimperist
Triti_Hlikia_2023.pptxTriti_Hlikia_2023.pptx
Triti_Hlikia_2023.pptx
36dimperist94 views
Παγκόσμια Ημέρα Ατόμων με Αναπηρία.pptx by 7gymnasiokavalas
Παγκόσμια Ημέρα Ατόμων με Αναπηρία.pptxΠαγκόσμια Ημέρα Ατόμων με Αναπηρία.pptx
Παγκόσμια Ημέρα Ατόμων με Αναπηρία.pptx
7gymnasiokavalas31 views
ΧΡΙΣΤΟΥΓΕΝΝΑ 2 (1).pptx by ssuser86b52c
ΧΡΙΣΤΟΥΓΕΝΝΑ 2 (1).pptxΧΡΙΣΤΟΥΓΕΝΝΑ 2 (1).pptx
ΧΡΙΣΤΟΥΓΕΝΝΑ 2 (1).pptx
ssuser86b52c13 views
Γυμνάσιο Κεραμωτής - Κινητικότητα Erasmus+ / 12-18.11.2023 by gymkeram
Γυμνάσιο Κεραμωτής - Κινητικότητα Erasmus+ / 12-18.11.2023Γυμνάσιο Κεραμωτής - Κινητικότητα Erasmus+ / 12-18.11.2023
Γυμνάσιο Κεραμωτής - Κινητικότητα Erasmus+ / 12-18.11.2023
gymkeram24 views
Βρίσκοντας τα μνημεία by Dimitra Mylonaki
Βρίσκοντας τα μνημείαΒρίσκοντας τα μνημεία
Βρίσκοντας τα μνημεία
Dimitra Mylonaki17 views
Σχολές, Σπουδές & Πανελλαδικές 2024 by EmployEdu
Σχολές, Σπουδές & Πανελλαδικές 2024Σχολές, Σπουδές & Πανελλαδικές 2024
Σχολές, Σπουδές & Πανελλαδικές 2024
EmployEdu99 views
Σχολές, Σπουδές & Πανελλαδικές 2024_2 by EmployEdu
Σχολές, Σπουδές & Πανελλαδικές 2024_2Σχολές, Σπουδές & Πανελλαδικές 2024_2
Σχολές, Σπουδές & Πανελλαδικές 2024_2
EmployEdu172 views
Συμμετοχή Γυμνασίου Κεραμωτής στο πρόγραμμα "Kids save lives" - "Τα παιδιά σώ... by gymkeram
Συμμετοχή Γυμνασίου Κεραμωτής στο πρόγραμμα "Kids save lives" - "Τα παιδιά σώ...Συμμετοχή Γυμνασίου Κεραμωτής στο πρόγραμμα "Kids save lives" - "Τα παιδιά σώ...
Συμμετοχή Γυμνασίου Κεραμωτής στο πρόγραμμα "Kids save lives" - "Τα παιδιά σώ...
gymkeram12 views
Ο ΑΪ ΒΑΣΙΛΗΣ ΣΤΙΣ ΔΙΑΦΟΡΕΣ ΧΩΡΕΣ.pptx by ssuser86b52c
Ο ΑΪ ΒΑΣΙΛΗΣ ΣΤΙΣ ΔΙΑΦΟΡΕΣ ΧΩΡΕΣ.pptxΟ ΑΪ ΒΑΣΙΛΗΣ ΣΤΙΣ ΔΙΑΦΟΡΕΣ ΧΩΡΕΣ.pptx
Ο ΑΪ ΒΑΣΙΛΗΣ ΣΤΙΣ ΔΙΑΦΟΡΕΣ ΧΩΡΕΣ.pptx
ssuser86b52c11 views
Γυμνάσιο Κεραμωτής - Γιορτή 17ης Νοεμβρίου 2023.pptx by gymkeram
Γυμνάσιο Κεραμωτής - Γιορτή 17ης Νοεμβρίου 2023.pptxΓυμνάσιο Κεραμωτής - Γιορτή 17ης Νοεμβρίου 2023.pptx
Γυμνάσιο Κεραμωτής - Γιορτή 17ης Νοεμβρίου 2023.pptx
gymkeram17 views
Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς ΛΑΠΜΠΟΥΚ by Dimitra Mylonaki
Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς ΛΑΠΜΠΟΥΚΜνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς ΛΑΠΜΠΟΥΚ
Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς ΛΑΠΜΠΟΥΚ
Dimitra Mylonaki21 views

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7

  • 1. ∆οµές ∆εδοµένων σε C Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης ∆ηµήτρης Ψούνης
  • 2. Περιεχόµενα Μαθήµατος Α. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 1. Ορισµός ∆∆Α 2. Βασικές Πράξεις 3. Υλοποίηση σε C: Αναζήτηση σε ∆∆Α 4. Υλοποίηση σε C: Εισαγωγή σε ∆∆Α 5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α Β. Ασκήσεις 2∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης
  • 3. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 1. Ορισµός ∆υαδικού ∆ένδρου Αναζήτησης 3∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης Το «∆υαδικό ∆ένδρο Αναζήτησης» (∆∆Α) είναι ένα δένδρο στο οποίο σε κάθε κόµβο έχει αποθηκευτεί µία τιµή v και επιπλέον: • Στις κορυφές του αριστερού υποδένδρου, έχουν αποθηκευτεί τιµές µικρότερες της v. • Στις κορυφές του δεξιού υποδένδρου έχουν αποθηκευτεί τιµές µεγαλύτερες της v. Σηµαντικό: Η ενδοδιατεταγµένη διαδροµή σε ένα ∆∆Α επιστρέφει τους αριθµούς του ∆∆Α σε αύξουσα σειρά Παραδείγµατα ∆υαδικών ∆ένδρων Αναζήτησης: 11 146 19134 5 2617 ∆∆Α που αποθηκεύει αριθµούς john ben pam alice eve max tom ∆∆Α που αποθηκεύει συµβολοσειρές
  • 4. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 2. Βασικές Πράξεις 4∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης Οι βασικές πράξεις σε ένα δυαδικό δένδρο αναζήτησης (επεκτείνοντας το δυαδικό δένδρο) είναι: • Εισαγωγή ενός στοιχείου στο δένδρο (insert_BST) • Αναζήτηση ενός στοιχείου στο δένδρο (search_BST) • ∆ιαγραφή ενός στοιχείου από το δένδρο (delete_BST) Παρατήρηση: Επεκτείνουµε τον ορισµό του ∆υαδικού ∆ένδρου, αφού η εισαγωγή και η διαγραφή κόµβων από το ∆∆Α θα ακολουθούν κάποιο συγκεκριµένο αλγόριθµο, ώστε µετά από την εκτέλεση των πράξεων το δένδρο να εξακολουθεί να έχει την ιδιότητα του ∆∆Α.
  • 5. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 3. Υλοποίηση σε C: Αναζήτηση σε ∆∆Α 5∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης Η συνάρτηση «Αναζήτηση» ψάχνει για το στοιχείο Χ στο δυαδικό δένδρο αναζήτησης και επιστρέφει ΝΑΙ/ΌΧΙ ανάλογα µε το αν το στοιχείο υπάρχει στο δένδρο: Σκιαγράφηση αλγορίθµου: Θέτει Κ = ρίζα του δένδρου Επανέλαβε όσο Κ ≠ KENO Αν (Χ = Κ) Επέστρεψε ΝΑΙ Αλλιώς αν (Χ > Κ) Θέσε Κ=δεξί παιδί της Κ. Αλλιώς αν (Χ < Κ) Θέσε Κ=αριστερό παιδί της Κ. Τέλος-Επανάληψης Επέστρεψε ΟΧΙ
  • 6. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 3. Υλοποίηση σε C: Αναζήτηση σε ∆∆Α 6∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης Παράδειγµα Αναζήτησης του δεδοµένου 8 (κόκκινο χρώµα) και του 17 (µπλέ χρώµα) Αναζήτηση του 8: 10(αριστερά), 6(δεξιά), 7(δεξιά), 8 (βρέθηκε). Απάντηση: ΝΑΙ Αναζήτηση του 17: 10(δεξιά), 14 (δεξιά), 19(αριστερά). ΚΕΝΟ. Απάντηση: ΟΧΙ 10 146 1975 82 3
  • 7. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 3. Υλοποίηση σε C: Αναζήτηση σε ∆∆Α 7∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης /* TR_search_BST(): anazitisi tou x sto DDA me riza root */ int TR_search_BST(TREE_PTR root, elem x) { TREE_PTR current; current=root; while (current!=NULL) { if (x == current->data) return TRUE; else if (x < current->data) current=current->left; else // x > current->data current=current->right; } return FALSE; }
  • 8. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 4. Υλοποίηση σε C: Εισαγωγή σε ∆∆Α 8∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης Σκιαγράφηση αλγορίθµου: Αν Τ είναι άδειο, τοποθέτησε το x ως ρίζα. Επέστρεψε TRUE Θέσε Κ=ρίζα του δένδρου Επανέλαβε: Αν x==K Επέστρεψε FALSE Αλλιώς αν x<K Αν Κ δεν έχει αριστερό παιδί: Κατασκεύασε αριστερό παιδί της K με δεδομένο x. Επέστρεψε TRUE Αλλιώς Θέσε K=αριστερό παιδί του Κ. Αλλιώς // x>K Αν Κ δεν έχει δεξί παιδί: Κατασκεύασε δεξί παιδί του K με δεδομένο x. Επέστρεψε TRUE Αλλιώς Θέσε K=δεξί παιδί του Κ. Ο αλγόριθµος «Εισαγωγής σε ∆∆Α» δεδοµένου ενός ∆∆Α Τ και ενός δεδοµένου x: • Αν το x υπάρχει στο δένδρο Τ επιστρέφει FALSE • Αν το x δεν υπάρχει στο δένδρο Τ το εισάγει σε θέση που σέβεται το ∆∆Α.
  • 9. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 4. Υλοποίηση σε C: Εισαγωγή σε ∆∆Α 9∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης Παράδειγµα Εισαγωγής του δεδοµένου 17 10 146 1975 82 3 10 146 1975 82 3 17
  • 10. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 4. Υλοποίηση σε C: Εισαγωγή σε ∆∆Α 10∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης /* TR_insert_BST(): eisagwgi tou x sto DDA me riza root */ int TR_insert_BST(TREE_PTR *root, elem x) { TREE_PTR current; /* 1. Eisagwgi se adeio dentro */ if (*root==NULL) { TR_insert_root(root, x); return TRUE; } /* 2. Anazitisi + Eisagwgi sto dendro */ current=*root; while (1) { if (x == current->data) return FALSE;
  • 11. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 4. Υλοποίηση σε C: Εισαγωγή σε ∆∆Α 11∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης else if (x < current->data) { if (current->left==NULL) { TR_insert_left(current,x); return TRUE; } else current=current->left; } else // x > current->data { if (current->right==NULL) { TR_insert_right(current,x); return TRUE; } else current=current->right; } } }
  • 12. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α 12∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης Ο αλγόριθµος «∆ιαγραφής σε ∆∆Α» παίρνει ως όρισµα ένα δένδρο Τ και ένα δεδοµένο x (που υπάρχει στο δένδρο) και ξεχωρίζει 3 περιπτώσεις: • Αν ο κόµβος του x δεν έχει παιδιά, τότε διαγράφουµε τον κόµβο. 10 146 1975 82 3 Παράδειγµα: ∆ιαγραφή του «8» ΠΡΙΝ 10 146 1975 2 3 ΜΕΤΑ
  • 13. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α 13∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης • Αν ο κόµβος του x έχει ένα παιδί, τότε διαγράφουµε τον κόµβο και το παιδί του τον αντικαθιστά. 10 146 1975 82 3 Παράδειγµα: ∆ιαγραφή του «5» ΠΡΙΝ ΜΕΤΑ 10 146 197 8 2 3
  • 14. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α 14∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης • Αν ο κόµβος του x έχει δύο παιδιά, τότε: Βρίσκουµε τον επόµενο στην ενδοδιατεταγµένη διαδροµή και αντικαθιστούµε τον x µε αυτόν. • Περίπτωση 1: Το δεξί παιδί του x δεν έχει αριστερό παιδί • Τότε ο x αντικαθίσταται από το δεξί παιδί του (που διατηρεί το δεξί υποδένδρο του). 10 146 1975 82 3 Παράδειγµα: ∆ιαγραφή του «6» ΠΡΙΝ ΜΕΤΑ 10 147 1985 2 3
  • 15. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α 15∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης • Αν ο κόµβος του x έχει δύο παιδιά, τότε: Βρίσκουµε τον επόµενο στην ενδοδιατεταγµένη διαδροµή (y) και αντικαθιστούµε τον x µε αυτόν. • Περίπτωση 2: Το δεξί παιδί του x έχει αριστερό παιδί • Ο y παίρνει τη θέση του x • Ο κόµβος του y αντικαθίσταται από το δεξί υποδένδρο του y Παράδειγµα: ∆ιαγραφή του «10» ΠΡΙΝ ΜΕΤΑ 10 147 19135 2 11 12 11 147 19135 2 12
  • 16. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α 16∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης /* TR_delete_BST(): diagrafi tou x apo to DDA me riza root */ int TR_delete_BST(TREE_PTR *root, elem x) { TREE_PTR current, parent, nextOrdered; int p; /* 1. deksi paidi, 2. aristero paidi tou current */ int temp; /* 1. Anazitisi tou komvou */ parent=NULL; current=*root; while (current!=NULL) { if (x == current->data) break; else if (x < current->data) { parent=current; p=1; current=current->left; }
  • 17. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α 17∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης else // x > current->data { parent=current; p=2; current=current->right; } } if (current==NULL) return FALSE; /* 2.1 An den exei paidia */ if (current->left==NULL && current->right==NULL) { free(current); if (parent==NULL) *root=NULL; else if (p==1) parent->left=NULL; else parent->right=NULL; return TRUE; }
  • 18. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α 18∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης /* 2.2 Exei mono aristero paidi */ else if (current->left!=NULL && current->right==NULL) { if (parent==NULL) *root=current->left; else if (p==1) parent->left=current->left; else parent->right=current->left; free(current); return TRUE; } /* 2.3 Exei mono deksi paidi */ else if (current->left==NULL && current->right!=NULL) { if (parent==NULL) *root=current->right; else if (p==1) parent->left=current->right; else parent->right=current->right;
  • 19. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α 19∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης free(current); return TRUE; } /* 2.4 Exei aristero kai deksi paidi */ else { /* 2.4.1 Vriskei ton epomeno stin endodiatetagmeni */ p=1; nextOrdered=current->right; while (nextOrdered->left!=NULL) { parent=nextOrdered; nextOrdered=nextOrdered->left; p=2; } /*2.4.2 Antallassei times me ton komvo pou diagrafetai */ current->data=nextOrdered->data;
  • 20. A. Θεωρία 1. ∆υαδικό ∆ένδρο Αναζήτησης 5. Υλοποίηση σε C: ∆ιαγραφή σε ∆∆Α 20∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης /*2.4.3 Diagrafei ton komvo */ if (p==1) /*2.4.3.1 O epomenos einai to deksi paidi */ { current->right=nextOrdered->right; free(nextOrdered); } else { parent->left=nextOrdered->right; free(nextOrdered); } } }
  • 21. Β. Ασκήσεις Εφαρµογή 1: Μελέτη Προγράµµατος ∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης 21 Μελετήστε το project tree.dev στο οποίο υλοποιούνται οι βασικές πράξεις των δυαδικών δένδρων αναζήτησης που µελετήσαµε στο µάθηµα.
  • 22. Β. Ασκήσεις Εφαρµογή 2: Εκτέλεση «µε το χέρι» ∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης 22 1. Εισάγετε τα ακόλουθα δεδοµένα σε ένα ∆∆Α: «10 6 3 9 12 5 4 2 1 8». 2. ∆ιαγράψτε τον κόµβο 12 3. Εισάγετε τον κόµβο 7
  • 23. Β. Ασκήσεις Εφαρµογή 2: Εκτέλεση «µε το χέρι» ∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 7: ∆υαδικά ∆ένδρα Αναζήτησης 23 4. ∆ιαγράψτε τον κόµβο 3 5. ∆ώστε την ενδοδιατεταγµένη διαπέραση του δένδρου 6. Κατασκεύαστε πλήρες δυαδικό δένδρο αναζήτησης που να περιέχει τα περιεχόµενα του δένδρου .