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

Dimitris Psounis
Dimitris PsounisTeacher & Manager at Δημήτρης Ψούνης - Υπηρεσίες Εκπαίδευσης à www.psounis.gr
∆οµές ∆εδοµένων σε C
Μάθηµα 8:
∆ένδρα - Σωροί
∆ηµήτρης Ψούνης
Περιεχόµενα Μαθήµατος
Α. Θεωρία
1. ∆ένδρο – Σωρός
1. Ορισµός ∆ένδρου-Σωρού
2. Βασικές Πράξεις και Ανπαράσταση
3. Υλοποίηση σε C: ∆ηλώσεις
4. Υλοποίηση σε C: Αρχικοποίηση
5. Υλοποίηση σε C: Εισαγωγή Κόµβου
6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου
7. Ο αλγόριθµος ταξινόµησης HeapSort
Β. Ασκήσεις
2∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
A. Θεωρία
1. ∆ένδρο - Σωρός
1. Ορισµός ∆ένδρου - Σωρού
3∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
Το «∆ένδρο - Σωρός Μεγίστων» (heap) είναι ένα πλήρες δυαδικό δένδρο στο οποίο:
• Κάθε κόµβος έχει τιµή µεγαλύτερη από τα παιδιά του.
Παρατήρηση: Αντίστοιχα ορίζεται το δένδρο – σωρός ελαχίστων
Παράδειγµα ∆ένδρου - Σωρού:
25
2017
8414 12
5
Σωρός που αποθηκεύει αριθµούς
911 3 1
A. Θεωρία
1. ∆ένδρο - Σωρός
2. Βασικές Πράξεις και Αναπαράσταση
4∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
Οι βασικές πράξεις σε ένα δένδρο-σωρό είναι:
• Αρχικοποίηση του σωρού (HEAP_init)
• Εισαγωγή ενός στοιχείου στο δένδρο (HEAP_insert)
• ∆ιαγραφή της ρίζας του δένδρου (HEAP_delete)
Παρατήρηση: Επειδή το ∆ένδρο-Σωρός είναι Πλήρες προτιµάµε (λόγω ευκολίας πράξεων) την
συνεχόµενη αναπαράσταση του δένδρου.
25
2017
14 12
0 1 2 3 4 5 6
25 17 20 14 12data =
25
2017
14 12
0
1
2
3
4
5 6
Σηµαντικές παρατηρήσεις:
• Ο πατέρας του είναι ο 1 	DIV	2	
• Το αριστερό παιδί του είναι 2 ∗ 1
• Το δεξί παιδί του είναι 2 ∗ 2
A. Θεωρία
1. ∆ένδρο - Σωρός
3. Υλοποίηση σε C: ∆ηλώσεις
5∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
Οι δηλώσεις σε C είναι οι ακόλουθες:
• Ο κόµβος του δένδρου είναι µία δοµή (struct) µε τα εξής στοιχεία:
• Ένας πίνακας (data) µε τα στοιχεία του δένδρου (σε τύπο δεδοµένων που ορίζουµε).
• Το πλήθος των στοιχείων του δένδρου (N)
/* heap.h : Dilwseis dendrou-swrou */
#define TRUE 1
#define FALSE 0
#define MAX_SIZE 31
typedef int elem; /* typos dedomenwn dendrou*/
struct heap_tree{ /* Dendro-Swros */
elem data[MAX_SIZE]; /* dedomena */
int N; /* plithos stoixeiwn */
};
typedef struct heap_tree HEAP; /* Sinwnimo tou swrou */
A. Θεωρία
1. ∆ένδρο - Σωρός
4. Υλοποίηση σε C: Αρχικοποίηση
6∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
Η αρχικοποίηση γίνεται θέτοντας το πλήθος των στοιχείων του δένδρου ίσα µε το 0.
/* HEAP_init(): arxikopoiei to dendro */
void HEAP_init(HEAP *heap)
{
heap->N=0;
}
Προσοχή:
• Πάντα προτού ξεκινάµε την χρήση του δένδρου θα πρέπει να καλούµε µία φορά αυτήν τη
συνάρτηση!
A. Θεωρία
1. ∆ένδρο - Σωρός
5. Υλοποίηση σε C: Εισαγωγή Κόµβου
7∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
Η συνάρτηση «Εισαγωγή» εισάγει έναν νέο κόµβο:
1. Θέτει τον κόµβο στην επόµενη θέση του πίνακα
2. Ανταλλάσσει τη θέση µε το γονέα του όσο έχει µεγαλύτερη τιµή από αυτόν.
Παράδειγµα: Το 24 στην επόµενη θέση: Το 24 > 4, γίνεται ανταλλαγή:
Το 24 > 20, γίνεται ανταλλαγή: Το 24 < 25, ΤΕΛΟΣ εισαγωγής
A. Θεωρία
1. ∆ένδρο - Σωρός
5. Υλοποίηση σε C: Εισαγωγή Κόµβου
8∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
/* HEAP_insert(): Eisagei to stoixeio x
sto dentro-swros heap */
int HEAP_insert(HEAP *heap,elem x)
{
int posParent, posCurrent;
elem temp;
/* An xwraei sto swro */
if (heap->N == MAX_SIZE)
return FALSE;
/* 1. Eisagwgi tou neou komvou */
heap->data[heap->N]=x;
heap->N ++;
A. Θεωρία
1. ∆ένδρο - Σωρός
5. Υλοποίηση σε C: Εισαγωγή Κόµβου
9∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
/* 2. Antimetathesi me to gonea
efoson vrei mikroteri timi */
posCurrent=heap->N - 1;
while (posCurrent>0)
{
posParent=(posCurrent-1)/2;
/* 2.1 Exei megaliteri timi apo gonea. Antimetathesi. */
if (heap->data[posCurrent] > heap->data[posParent])
{
swap(&heap->data[posCurrent],&heap->data[posParent]);
posCurrent=posParent;
}
/* 2.2 Pire tin oristiki tou thesi. Diakopi */
else
break;
}
return TRUE;
}
A. Θεωρία
1. ∆ένδρο - Σωρός
6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου
10∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
Η συνάρτηση «∆ιαγραφή» διαγράφει τη ρίζα (µέγιστο στοιχείο του δένδρου):
1. Αποθηκεύει την τιµή της ρίζας. Θέτει το τελευταίο στοιχείο του πίνακα στη ρίζα.
2. Επαναληπτικά, αν το στοιχείο έχει µικρότερη τιµή από κάποιο παιδί του, τότε ανταλλάσσει τη
θέση µε το µεγαλύτερο από τα δύο παιδιά του.
Παράδειγµα: Αποµακρύνεται το 25. Το 4 παίρνει τη θέση του 25: Ανταλλάσσει
την θέση του µε το 24
Το 4 ανταλλάσσει την τιµή του µε το 20 Το 4 είναι µεγαλύτερο από τα παιδιά του. ∆ΙΑΚΟΠΗ
A. Θεωρία
1. ∆ένδρο - Σωρός
6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου
11∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
/* HEAP_delete(): Diagrafei ti riza tou dendrou */
int HEAP_delete(HEAP *heap,elem *x)
{
int posCurrent, posLeft, posRight, pos;
elem temp;
/* An o swros einai adeios */
if (heap->N == 0)
return FALSE;
/* 1. Sigkratisi (epistrofi) tis rizas */
*x=heap->data[0];
/* 2. Topothetisi tou teleutaiou stoixeiou sti riza */
heap->data[0]=heap->data[heap->N - 1];
heap->N --;
A. Θεωρία
1. ∆ένδρο - Σωρός
6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου
12∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
/* 3. Antallagi me to megalitero twn paidiwn toy */
posCurrent=0;
while(posCurrent<heap->N)
{
posLeft=2*posCurrent+1;
posRight=2*posCurrent+2;
if (posLeft >= heap->N)
posLeft=-1;
if (posRight >= heap->N)
posRight=-1;
/* 3.1. Den exei paidia */
if (posLeft==-1 && posRight==-1)
break;
A. Θεωρία
1. ∆ένδρο - Σωρός
6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου
13∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
/* 3.2. Exei mono aristero paidi */
else if (posLeft!=-1 && posRight==-1)
{
if (heap->data[posCurrent] < heap->data[posLeft])
{
swap(&heap->data[posCurrent],&heap->data[posLeft]);
posCurrent=posLeft;
}
else
break;
}
A. Θεωρία
1. ∆ένδρο - Σωρός
6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου
14∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
/* 3.3. Exei dyo paidia */
else // posLeft!=-1 && posRight!=-1
{
/*3.3.1 Eyresi tou megaliterou apo ta dyo paidia */
if (heap->data[posLeft] < heap->data[posRight])
pos=posRight;
else
pos=posLeft;
/*3.3.2 Antimetathesi an einai mikrotero */
if (heap->data[posCurrent] < heap->data[pos])
{
swap(&heap->data[posCurrent],&heap->data[pos]);
posCurrent=pos;
}
else
break;
}
}
}
A. Θεωρία
1. ∆ένδρο - Σωρός
7. Ο αλγόριθµος ταξινόµησης HeapSort
15∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
Ο αλγόριθµος HeapSort χρησιµοποιεί τη δοµή δεδοµένων Σωρού, ώστε να ταξινοµήσει µια
ακολουθία δεδοµένων: Αρχικά, τα δεδοµένα εισάγονται στο σωρό.
Παράδειγµα: πίνακας [5, 8, 14, 12, 7, 16, 13, 15]
Εισαγωγή του 5 Εισαγωγή του 8 Εισαγωγή του 14
Εισαγωγή του 12 Εισαγωγή του 7 Εισαγωγή του 16
Εισαγωγή του 13 Εισαγωγή του 15
A. Θεωρία
1. ∆ένδρο - Σωρός
7. Ο αλγόριθµος ταξινόµησης HeapSort
16∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
Έπειτα µε διαδοχικές διαγραφές διαγράφονται τα δεδοµένα από το σωρό. Έτσι προκύπτει η
ακολουθία των δεδοµένων σε φθίνουσα σειρά.
∆ιαγραφή ρίζας: 16 ∆ιαγραφή ρίζας: 15
∆ιαγραφή ρίζας: 14 ∆ιαγραφή ρίζας: 13 ∆ιαγραφή ρίζας: 12
∆ιαγραφή ρίζας: 8 ∆ιαγραφή ρίζας: 7 ∆ιαγραφή ρίζας: 5
Β. Ασκήσεις
Εφαρµογή 1: Μελέτη Προγράµµατος
∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί 17
Μελετήστε το project heap.dev στο οποίο υλοποιούνται οι βασικές πράξεις του δένδρου-σωρού
που µελετήσαµε στο µάθηµα.
Β. Ασκήσεις
Εφαρµογή 2: ∆οµές ∆εδοµένων «µε το χέρι»
∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί 18
∆ίνεται η ακολουθία δεδοµένων «5 8 3 2 1 6 9 7»
1. Εισάγετε τα δεδοµένα σε µία στοίβα.
2. Εξάγοντας τα δεδοµένα από τη στοίβα, εισάγετέ τα σε ένα δυαδικό δένδρο αναζήτησης.
Β. Ασκήσεις
Εφαρµογή 2: ∆οµές ∆εδοµένων «µε το χέρι»
∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί 19
3. ∆ώστε την προδιατεταγµένη διαδροµή του δυαδικού δένδρου αναζήτησης.
4. Εισάγετε τα δεδοµένα σε ένα σωρό ελαχίστων µε σειρά την προδιατεταγµένη διαπέραση.
Β. Ασκήσεις
Εφαρµογή 3: ∆ένδρο-Σωρός Ελαχίστων
∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί 20
Τροποποιήστε το πρόγραµµα ώστε να υλοποιεί ένα δένδρο-σωρό ελαχίστων.
1 sur 20

Recommandé

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 par
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 Dimitris Psounis
4.2K vues27 diapositives
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 par
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7Dimitris Psounis
3.2K vues23 diapositives
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 par
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 Dimitris Psounis
6.8K vues20 diapositives
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 par
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 Dimitris Psounis
3.9K vues40 diapositives
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4 par
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4Dimitris Psounis
5.8K vues25 diapositives
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 par
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 Dimitris Psounis
7.1K vues17 diapositives

Contenu connexe

Tendances

ΠΛΗ20 ΜΑΘΗΜΑ 6.3 par
ΠΛΗ20 ΜΑΘΗΜΑ 6.3ΠΛΗ20 ΜΑΘΗΜΑ 6.3
ΠΛΗ20 ΜΑΘΗΜΑ 6.3Dimitris Psounis
4.4K vues34 diapositives
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ par
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥDimitris Psounis
12.9K vues48 diapositives
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ par
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑDimitris Psounis
3K vues24 diapositives
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ par
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣDimitris Psounis
17.5K vues26 diapositives
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 par
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 Dimitris Psounis
3.4K vues40 diapositives
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 par
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 Dimitris Psounis
5.2K vues27 diapositives

Tendances(20)

ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ par Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
Dimitris Psounis12.9K vues
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ par Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ par Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Dimitris Psounis17.5K vues
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ par Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Dimitris Psounis9.7K vues
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ par Dimitris Psounis
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
Dimitris Psounis3.5K vues
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ par Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Dimitris Psounis7.7K vues
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ par Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.5K vues
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis8.2K vues
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis7.2K vues

En vedette

ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 6 par
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 6ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 6
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 6Dimitris Psounis
5.7K vues2 diapositives
ΠΛΗ20 ΤΕΣΤ 27 par
ΠΛΗ20 ΤΕΣΤ 27ΠΛΗ20 ΤΕΣΤ 27
ΠΛΗ20 ΤΕΣΤ 27Dimitris Psounis
1K vues4 diapositives
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ) par
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
2.2K vues5 diapositives
ΠΛΗ10 ΤΕΣΤ 21 par
ΠΛΗ10 ΤΕΣΤ 21ΠΛΗ10 ΤΕΣΤ 21
ΠΛΗ10 ΤΕΣΤ 21Dimitris Psounis
1.4K vues5 diapositives
ΠΛΗ20 ΤΕΣΤ 28 par
ΠΛΗ20 ΤΕΣΤ 28ΠΛΗ20 ΤΕΣΤ 28
ΠΛΗ20 ΤΕΣΤ 28Dimitris Psounis
882 vues5 diapositives
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 4 par
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 4ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 4
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 4Dimitris Psounis
10.3K vues3 diapositives

En vedette(20)

ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 6 par Dimitris Psounis
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 6ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 6
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 6
Dimitris Psounis5.7K vues
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.2K vues
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 4 par Dimitris Psounis
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 4ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 4
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 4
Dimitris Psounis10.3K vues
ΠΛΗ20 ΚΑΡΤΑ ΜΑΘΗΜΑ 0.1 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΠΛΗ20 ΚΑΡΤΑ ΜΑΘΗΜΑ 0.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ20 ΚΑΡΤΑ ΜΑΘΗΜΑ 0.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ20 ΚΑΡΤΑ ΜΑΘΗΜΑ 0.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis6.2K vues
ΠΛΗ20 ΜΑΘΗΜΑ 0.1 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΠΛΗ20 ΜΑΘΗΜΑ 0.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ20 ΜΑΘΗΜΑ 0.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ20 ΜΑΘΗΜΑ 0.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis6.6K vues
ΠΛΗ20 ΚΑΡΤΑ: ΣΥΝΟΛΑ ΚΑΙ ΠΡΑΞΕΙΣ ΣΥΝΟΛΩΝ par Dimitris Psounis
ΠΛΗ20 ΚΑΡΤΑ: ΣΥΝΟΛΑ ΚΑΙ ΠΡΑΞΕΙΣ ΣΥΝΟΛΩΝΠΛΗ20 ΚΑΡΤΑ: ΣΥΝΟΛΑ ΚΑΙ ΠΡΑΞΕΙΣ ΣΥΝΟΛΩΝ
ΠΛΗ20 ΚΑΡΤΑ: ΣΥΝΟΛΑ ΚΑΙ ΠΡΑΞΕΙΣ ΣΥΝΟΛΩΝ
Dimitris Psounis7.5K vues
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2 par Dimitris Psounis
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2
Dimitris Psounis11.7K vues
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis3.4K vues
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 3 par Dimitris Psounis
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 3ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 3
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 3
Dimitris Psounis9.1K vues
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.3 par Dimitris Psounis
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.3ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.3
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.3
Dimitris Psounis3.1K vues
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 5 par Dimitris Psounis
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 5ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 5
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 5
Dimitris Psounis6.8K vues
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.3 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.3 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.8K vues
ΠΛΗ20 ΜΑΘΗΜΑ 6.2 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΠΛΗ20 ΜΑΘΗΜΑ 6.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ20 ΜΑΘΗΜΑ 6.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ20 ΜΑΘΗΜΑ 6.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis3.6K vues
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2 par Dimitris Psounis
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2
ΠΛΗ20 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2
Dimitris Psounis3.8K vues

Similaire à ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8

ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ par
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣDimitris Psounis
1.4K vues29 diapositives
ΠΛΗ31 ΜΑΘΗΜΑ 3.5 par
ΠΛΗ31 ΜΑΘΗΜΑ 3.5ΠΛΗ31 ΜΑΘΗΜΑ 3.5
ΠΛΗ31 ΜΑΘΗΜΑ 3.5Dimitris Psounis
4.7K vues21 diapositives
ΠΛΗ31 ΤΕΣΤ 17 par
ΠΛΗ31 ΤΕΣΤ 17ΠΛΗ31 ΤΕΣΤ 17
ΠΛΗ31 ΤΕΣΤ 17Dimitris Psounis
2.3K vues6 diapositives
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 par
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3Dimitris Psounis
5.6K vues52 diapositives
αναπαράσταση αλγορίθμων και δεδομένων par
αναπαράσταση αλγορίθμων και δεδομένωναναπαράσταση αλγορίθμων και δεδομένων
αναπαράσταση αλγορίθμων και δεδομένωνMariaProGr
1.2K vues30 diapositives
Η Γλώσσα C - Μάθημα 2 par
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Dimitris Psounis
8.8K vues24 diapositives

Similaire à ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8(11)

ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ par Dimitris Psounis
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
Dimitris Psounis1.4K vues
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 par Dimitris Psounis
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
Dimitris Psounis5.6K vues
αναπαράσταση αλγορίθμων και δεδομένων par MariaProGr
αναπαράσταση αλγορίθμων και δεδομένωναναπαράσταση αλγορίθμων και δεδομένων
αναπαράσταση αλγορίθμων και δεδομένων
MariaProGr1.2K vues
Θέματα Πανελλαδικών Εξετάσεων 2014 - Ημερησίων ΕΠΑΛ – Ομάδα Α - Δομημένος Προ... par Nickos Nickolopoulos
Θέματα Πανελλαδικών Εξετάσεων 2014 - Ημερησίων ΕΠΑΛ – Ομάδα Α - Δομημένος Προ...Θέματα Πανελλαδικών Εξετάσεων 2014 - Ημερησίων ΕΠΑΛ – Ομάδα Α - Δομημένος Προ...
Θέματα Πανελλαδικών Εξετάσεων 2014 - Ημερησίων ΕΠΑΛ – Ομάδα Α - Δομημένος Προ...
Stelios poulakakis daktylidis diploma thesis presentation par ISSEL
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentation
ISSEL237 vues
Them mat gen_c_hmer_d_esp_epan_1206 par s0uiz
Them mat gen_c_hmer_d_esp_epan_1206Them mat gen_c_hmer_d_esp_epan_1206
Them mat gen_c_hmer_d_esp_epan_1206
s0uiz74 vues

Plus de Dimitris Psounis

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ par
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣDimitris Psounis
4.9K vues25 diapositives
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ) par
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Dimitris Psounis
640 vues7 diapositives
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ) par
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)Dimitris Psounis
475 vues8 diapositives
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ par
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣDimitris Psounis
5.9K vues30 diapositives
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ) par
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Dimitris Psounis
3.8K vues8 diapositives
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C par
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CDimitris Psounis
2.3K vues33 diapositives

Plus de Dimitris Psounis(20)

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

Dernier

Ολική καταστροφή στις καλλιέργειες par
Ολική καταστροφή στις καλλιέργειεςΟλική καταστροφή στις καλλιέργειες
Ολική καταστροφή στις καλλιέργειεςDimitra Mylonaki
16 vues22 diapositives
Το σκιάχτρο par
Το σκιάχτροΤο σκιάχτρο
Το σκιάχτροDimitra Mylonaki
12 vues14 diapositives
Η δική μου Παναγιά par
Η δική μου ΠαναγιάΗ δική μου Παναγιά
Η δική μου Παναγιάhrisgiou
23 vues14 diapositives
τεχνικές διαχείρισης σχολικής τάξης.pptx par
τεχνικές διαχείρισης σχολικής τάξης.pptxτεχνικές διαχείρισης σχολικής τάξης.pptx
τεχνικές διαχείρισης σχολικής τάξης.pptxsarrafimaria
17 vues38 diapositives
ΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdf par
ΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdfΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdf
ΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdfssuser369a35
15 vues2 diapositives
KEΦΑΛΑΙΟ 38 par
KEΦΑΛΑΙΟ 38KEΦΑΛΑΙΟ 38
KEΦΑΛΑΙΟ 38ssuser43d27b
16 vues22 diapositives

Dernier(20)

Ολική καταστροφή στις καλλιέργειες par Dimitra Mylonaki
Ολική καταστροφή στις καλλιέργειεςΟλική καταστροφή στις καλλιέργειες
Ολική καταστροφή στις καλλιέργειες
Η δική μου Παναγιά par hrisgiou
Η δική μου ΠαναγιάΗ δική μου Παναγιά
Η δική μου Παναγιά
hrisgiou 23 vues
τεχνικές διαχείρισης σχολικής τάξης.pptx par sarrafimaria
τεχνικές διαχείρισης σχολικής τάξης.pptxτεχνικές διαχείρισης σχολικής τάξης.pptx
τεχνικές διαχείρισης σχολικής τάξης.pptx
sarrafimaria17 vues
ΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdf par ssuser369a35
ΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdfΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdf
ΟΔΗΓΙΕΣ ΚΑΤΑΘΕΣΗΣ ΑΠΟΓΡΑΦΗΣ-3-4 (1).pdf
ssuser369a3515 vues
2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf par ssuser9e6212
2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf
2023_11_29_Φ_152_136804_Α5_ΕΓΚΥΚΛΙΟΣ_ΑΙΤΗΣΗ_ΔΗΛΩΣΗ_ΕΠΑΛ_2024.pdf
ssuser9e6212516 vues
Εκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptx par 7gymnasiokavalas
Εκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptxΕκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο Ναυτικό Μουσείο Καβάλας.pptx
Από τον ηλεκτρισμό στον μαγνητισμό par Dimitra Mylonaki
Από τον ηλεκτρισμό στον μαγνητισμόΑπό τον ηλεκτρισμό στον μαγνητισμό
Από τον ηλεκτρισμό στον μαγνητισμό
Τριάντα εννιά καφενεία και ένα κουρείο par Dimitra Mylonaki
Τριάντα εννιά καφενεία και ένα κουρείοΤριάντα εννιά καφενεία και ένα κουρείο
Τριάντα εννιά καφενεία και ένα κουρείο

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

  • 1. ∆οµές ∆εδοµένων σε C Μάθηµα 8: ∆ένδρα - Σωροί ∆ηµήτρης Ψούνης
  • 2. Περιεχόµενα Μαθήµατος Α. Θεωρία 1. ∆ένδρο – Σωρός 1. Ορισµός ∆ένδρου-Σωρού 2. Βασικές Πράξεις και Ανπαράσταση 3. Υλοποίηση σε C: ∆ηλώσεις 4. Υλοποίηση σε C: Αρχικοποίηση 5. Υλοποίηση σε C: Εισαγωγή Κόµβου 6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου 7. Ο αλγόριθµος ταξινόµησης HeapSort Β. Ασκήσεις 2∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί
  • 3. A. Θεωρία 1. ∆ένδρο - Σωρός 1. Ορισµός ∆ένδρου - Σωρού 3∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί Το «∆ένδρο - Σωρός Μεγίστων» (heap) είναι ένα πλήρες δυαδικό δένδρο στο οποίο: • Κάθε κόµβος έχει τιµή µεγαλύτερη από τα παιδιά του. Παρατήρηση: Αντίστοιχα ορίζεται το δένδρο – σωρός ελαχίστων Παράδειγµα ∆ένδρου - Σωρού: 25 2017 8414 12 5 Σωρός που αποθηκεύει αριθµούς 911 3 1
  • 4. A. Θεωρία 1. ∆ένδρο - Σωρός 2. Βασικές Πράξεις και Αναπαράσταση 4∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί Οι βασικές πράξεις σε ένα δένδρο-σωρό είναι: • Αρχικοποίηση του σωρού (HEAP_init) • Εισαγωγή ενός στοιχείου στο δένδρο (HEAP_insert) • ∆ιαγραφή της ρίζας του δένδρου (HEAP_delete) Παρατήρηση: Επειδή το ∆ένδρο-Σωρός είναι Πλήρες προτιµάµε (λόγω ευκολίας πράξεων) την συνεχόµενη αναπαράσταση του δένδρου. 25 2017 14 12 0 1 2 3 4 5 6 25 17 20 14 12data = 25 2017 14 12 0 1 2 3 4 5 6 Σηµαντικές παρατηρήσεις: • Ο πατέρας του είναι ο 1 DIV 2 • Το αριστερό παιδί του είναι 2 ∗ 1 • Το δεξί παιδί του είναι 2 ∗ 2
  • 5. A. Θεωρία 1. ∆ένδρο - Σωρός 3. Υλοποίηση σε C: ∆ηλώσεις 5∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί Οι δηλώσεις σε C είναι οι ακόλουθες: • Ο κόµβος του δένδρου είναι µία δοµή (struct) µε τα εξής στοιχεία: • Ένας πίνακας (data) µε τα στοιχεία του δένδρου (σε τύπο δεδοµένων που ορίζουµε). • Το πλήθος των στοιχείων του δένδρου (N) /* heap.h : Dilwseis dendrou-swrou */ #define TRUE 1 #define FALSE 0 #define MAX_SIZE 31 typedef int elem; /* typos dedomenwn dendrou*/ struct heap_tree{ /* Dendro-Swros */ elem data[MAX_SIZE]; /* dedomena */ int N; /* plithos stoixeiwn */ }; typedef struct heap_tree HEAP; /* Sinwnimo tou swrou */
  • 6. A. Θεωρία 1. ∆ένδρο - Σωρός 4. Υλοποίηση σε C: Αρχικοποίηση 6∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί Η αρχικοποίηση γίνεται θέτοντας το πλήθος των στοιχείων του δένδρου ίσα µε το 0. /* HEAP_init(): arxikopoiei to dendro */ void HEAP_init(HEAP *heap) { heap->N=0; } Προσοχή: • Πάντα προτού ξεκινάµε την χρήση του δένδρου θα πρέπει να καλούµε µία φορά αυτήν τη συνάρτηση!
  • 7. A. Θεωρία 1. ∆ένδρο - Σωρός 5. Υλοποίηση σε C: Εισαγωγή Κόµβου 7∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί Η συνάρτηση «Εισαγωγή» εισάγει έναν νέο κόµβο: 1. Θέτει τον κόµβο στην επόµενη θέση του πίνακα 2. Ανταλλάσσει τη θέση µε το γονέα του όσο έχει µεγαλύτερη τιµή από αυτόν. Παράδειγµα: Το 24 στην επόµενη θέση: Το 24 > 4, γίνεται ανταλλαγή: Το 24 > 20, γίνεται ανταλλαγή: Το 24 < 25, ΤΕΛΟΣ εισαγωγής
  • 8. A. Θεωρία 1. ∆ένδρο - Σωρός 5. Υλοποίηση σε C: Εισαγωγή Κόµβου 8∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί /* HEAP_insert(): Eisagei to stoixeio x sto dentro-swros heap */ int HEAP_insert(HEAP *heap,elem x) { int posParent, posCurrent; elem temp; /* An xwraei sto swro */ if (heap->N == MAX_SIZE) return FALSE; /* 1. Eisagwgi tou neou komvou */ heap->data[heap->N]=x; heap->N ++;
  • 9. A. Θεωρία 1. ∆ένδρο - Σωρός 5. Υλοποίηση σε C: Εισαγωγή Κόµβου 9∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί /* 2. Antimetathesi me to gonea efoson vrei mikroteri timi */ posCurrent=heap->N - 1; while (posCurrent>0) { posParent=(posCurrent-1)/2; /* 2.1 Exei megaliteri timi apo gonea. Antimetathesi. */ if (heap->data[posCurrent] > heap->data[posParent]) { swap(&heap->data[posCurrent],&heap->data[posParent]); posCurrent=posParent; } /* 2.2 Pire tin oristiki tou thesi. Diakopi */ else break; } return TRUE; }
  • 10. A. Θεωρία 1. ∆ένδρο - Σωρός 6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου 10∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί Η συνάρτηση «∆ιαγραφή» διαγράφει τη ρίζα (µέγιστο στοιχείο του δένδρου): 1. Αποθηκεύει την τιµή της ρίζας. Θέτει το τελευταίο στοιχείο του πίνακα στη ρίζα. 2. Επαναληπτικά, αν το στοιχείο έχει µικρότερη τιµή από κάποιο παιδί του, τότε ανταλλάσσει τη θέση µε το µεγαλύτερο από τα δύο παιδιά του. Παράδειγµα: Αποµακρύνεται το 25. Το 4 παίρνει τη θέση του 25: Ανταλλάσσει την θέση του µε το 24 Το 4 ανταλλάσσει την τιµή του µε το 20 Το 4 είναι µεγαλύτερο από τα παιδιά του. ∆ΙΑΚΟΠΗ
  • 11. A. Θεωρία 1. ∆ένδρο - Σωρός 6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου 11∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί /* HEAP_delete(): Diagrafei ti riza tou dendrou */ int HEAP_delete(HEAP *heap,elem *x) { int posCurrent, posLeft, posRight, pos; elem temp; /* An o swros einai adeios */ if (heap->N == 0) return FALSE; /* 1. Sigkratisi (epistrofi) tis rizas */ *x=heap->data[0]; /* 2. Topothetisi tou teleutaiou stoixeiou sti riza */ heap->data[0]=heap->data[heap->N - 1]; heap->N --;
  • 12. A. Θεωρία 1. ∆ένδρο - Σωρός 6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου 12∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί /* 3. Antallagi me to megalitero twn paidiwn toy */ posCurrent=0; while(posCurrent<heap->N) { posLeft=2*posCurrent+1; posRight=2*posCurrent+2; if (posLeft >= heap->N) posLeft=-1; if (posRight >= heap->N) posRight=-1; /* 3.1. Den exei paidia */ if (posLeft==-1 && posRight==-1) break;
  • 13. A. Θεωρία 1. ∆ένδρο - Σωρός 6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου 13∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί /* 3.2. Exei mono aristero paidi */ else if (posLeft!=-1 && posRight==-1) { if (heap->data[posCurrent] < heap->data[posLeft]) { swap(&heap->data[posCurrent],&heap->data[posLeft]); posCurrent=posLeft; } else break; }
  • 14. A. Θεωρία 1. ∆ένδρο - Σωρός 6. Υλοποίηση σε C: ∆ιαγραφή Κόµβου 14∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί /* 3.3. Exei dyo paidia */ else // posLeft!=-1 && posRight!=-1 { /*3.3.1 Eyresi tou megaliterou apo ta dyo paidia */ if (heap->data[posLeft] < heap->data[posRight]) pos=posRight; else pos=posLeft; /*3.3.2 Antimetathesi an einai mikrotero */ if (heap->data[posCurrent] < heap->data[pos]) { swap(&heap->data[posCurrent],&heap->data[pos]); posCurrent=pos; } else break; } } }
  • 15. A. Θεωρία 1. ∆ένδρο - Σωρός 7. Ο αλγόριθµος ταξινόµησης HeapSort 15∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί Ο αλγόριθµος HeapSort χρησιµοποιεί τη δοµή δεδοµένων Σωρού, ώστε να ταξινοµήσει µια ακολουθία δεδοµένων: Αρχικά, τα δεδοµένα εισάγονται στο σωρό. Παράδειγµα: πίνακας [5, 8, 14, 12, 7, 16, 13, 15] Εισαγωγή του 5 Εισαγωγή του 8 Εισαγωγή του 14 Εισαγωγή του 12 Εισαγωγή του 7 Εισαγωγή του 16 Εισαγωγή του 13 Εισαγωγή του 15
  • 16. A. Θεωρία 1. ∆ένδρο - Σωρός 7. Ο αλγόριθµος ταξινόµησης HeapSort 16∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί Έπειτα µε διαδοχικές διαγραφές διαγράφονται τα δεδοµένα από το σωρό. Έτσι προκύπτει η ακολουθία των δεδοµένων σε φθίνουσα σειρά. ∆ιαγραφή ρίζας: 16 ∆ιαγραφή ρίζας: 15 ∆ιαγραφή ρίζας: 14 ∆ιαγραφή ρίζας: 13 ∆ιαγραφή ρίζας: 12 ∆ιαγραφή ρίζας: 8 ∆ιαγραφή ρίζας: 7 ∆ιαγραφή ρίζας: 5
  • 17. Β. Ασκήσεις Εφαρµογή 1: Μελέτη Προγράµµατος ∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί 17 Μελετήστε το project heap.dev στο οποίο υλοποιούνται οι βασικές πράξεις του δένδρου-σωρού που µελετήσαµε στο µάθηµα.
  • 18. Β. Ασκήσεις Εφαρµογή 2: ∆οµές ∆εδοµένων «µε το χέρι» ∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί 18 ∆ίνεται η ακολουθία δεδοµένων «5 8 3 2 1 6 9 7» 1. Εισάγετε τα δεδοµένα σε µία στοίβα. 2. Εξάγοντας τα δεδοµένα από τη στοίβα, εισάγετέ τα σε ένα δυαδικό δένδρο αναζήτησης.
  • 19. Β. Ασκήσεις Εφαρµογή 2: ∆οµές ∆εδοµένων «µε το χέρι» ∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί 19 3. ∆ώστε την προδιατεταγµένη διαδροµή του δυαδικού δένδρου αναζήτησης. 4. Εισάγετε τα δεδοµένα σε ένα σωρό ελαχίστων µε σειρά την προδιατεταγµένη διαπέραση.
  • 20. Β. Ασκήσεις Εφαρµογή 3: ∆ένδρο-Σωρός Ελαχίστων ∆ηµήτρης Ψούνης, ∆οµές ∆εδοµένων σε C, Μάθηµα 8: ∆ένδρα-Σωροί 20 Τροποποιήστε το πρόγραµµα ώστε να υλοποιεί ένα δένδρο-σωρό ελαχίστων.