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

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

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

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

Στοίβες με Δυναμική Δέσμευση Μνήμης

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

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

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

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

υναµικές οµές εδοµένων

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

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

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Βασικές οµές εδοµένων

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

Προγραμματισμός Ι. Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

Βασικές Δομές Δεδομένων

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

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

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

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

Υλοποίηση Λειτουργιών Στοίβας Απλά(1/2)

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων. Διδάσκων: Παναγιώτης Ανδρέου

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

Εργαστήριο 5. Εαρινό Εξάμηνο

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Προγραμματισμό για ΗΜΥ

Δομημένος Προγραμματισμός (ΤΛ1006)

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

Διάλεξη 10: Δομές Δεδομένων Ι (Στοίβες & Ουρές)

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

Εργαστήριο 2: Πίνακες

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Δομές Δεδομένων & Αλγόριθμοι

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

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

Διαδικασιακός Προγραμματισμός

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

Προγραμματισμός Η/Υ. Ενότητα 9: Ειδικά θέματα Δομών Δεδομένων

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

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

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

Προγραμματισμός Δομές Δεδομένων

ιαφάνειες παρουσίασης #5 (β)

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

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

Δομές δεδομένων (2) Αλγόριθμοι

Προγραμματισμός Η/Υ (ΤΛ2007 )

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

ΠΛΗ111. Ανοιξη Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Εργαστηριακή Άσκηση 1

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Μεθόδων Επίλυσης Προβλημάτων

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Μεθόδων Επίλυσης Προβλημάτων

ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στον Προγραμματισμό

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Ανάπτυξη και Σχεδίαση Λογισμικού

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

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 2010 2011, Χειµερινό εξάµηνο Ασκήσεις Επανάληψης Ενδιάµεσης Εξέτασης Κεφάλαιο 1: Εισαγωγή ( ιάλεξη 1) 1. Τι είναι η µαθηµατική µοντελοποίηση και ποια τα στάδια της? Κεφάλαιο 2: Αφηρηµένοι Τύποι εδοµένων ( ιάλεξη 1) 1. Να υλοποιηθεί προγραµµατιστικά µια δοµή (στατική δέσµευση µνήµης) η οποία να παριστάνει ένα φοιτητή και να περιέχει συγκεκριµένα τα εξής πεδία: i. Name ii. Surname iii. Age iv. Sex v. Date of Birth Να υλοποιηθεί επίσης η συνάρτηση main() η οποία να χρησιµοποιεί την δοµή, να ορίζει/αρχικοποιεί τα στοιχεία/πεδία ενός φοιτητή και να τα τυπώνει. 2. Ας υποθέσουµε ότι έχουµε την παρακάτω δήλωση δοµής: typedef struct{ char a[12]; int b; int c3; typos_egrafis; typos_egrafis egr; Ας υποθέσουµε ότι ένας ακέραιος αποθηκεύεται σε µια λέξη µνήµης και τρεις χαρακτήρες σε µια λέξη µνήµης. Αν τώρα δώσουµε τις εξής τιµές στο κάθε στοιχείο (a = abcdefghijkl ; b = 11; c3 = 12), να υπολογίσετε την διεύθυνση(egr.c3) και να υλοποιήσετε (παραστήσετε γραφικά) την δοµή καταγράφοντας τις διευθύνσεις όλων των µελών της.

3. ίνεται ο εξής αραιός πίνακας i/j 0 1 2 3 0 1 0 2 0 1 2 1 6 0 2 3 0 1 5 7 3 0 3 8 Να αποθηκευθεί ανά τριάδες της µορφής (i ; j ; τιµή).

Κεφάλαιο 3: Πολυπλοκότητα Αλγορίθµων ( ιάλεξη 2-3) 1. Αποδείξτε ότι ο χρόνος εκτέλεσης των ακόλουθων συναρτήσεων έχει ως εξής: 3 4 α) 2n + n + n + 1 είναι O n ) β) 6n 2είναι O (n) ( 4 Να δώσετε και την επαλήθευση για καθεµία από τις πιο πάνω συναρτήσεις. 2. ώστε το χρόνο εκτέλεσης χείριστης περίπτωσης (µε σύντοµη επεξήγηση) των πιο κάτω προγραµµάτων σαν συνάρτηση του n (Big Oh): 1. int sum=0; for(i=0; i<n; i++){ sum++; for(j=1;j<n; j++){ sum=sum+j; 2. int sum=0; while(i<n){ sum = sum +2; for(int j = 0; j < n; j++){ sum++; i++; 3. int sum=0; for(int i = 0; i < 6*n; i++){ for( int j = 1; j < n * n; j++) sum++; Κεφάλαιο 4: Συµβολοσειρές ( ιάλεξη 4) 1. ίνονται τα ακόλουθα προγράµµατα a και b. Ποια είναι τα αποτελέσµατα που παίρνουµε από την εκτέλεση των εντολών εκτύπωσης; a. int main(){ char s1[] = "Hello World"; char s2[11] = ; strcpy(b, &a[3]); printf("%s\n", b); printf("%d\n", strlen(b)); strcat(a, b); printf("%s\n", a); printf("%d", strlen(a));

b. int main(){ char s1[11] = "Cat"; char s2[12] = "Cut"; printf("%d\n", strcmp(s1, s2)); strcat(s1, s2); printf("%s\n", s1); printf("%s\n", s2); printf("%d", strcmp(s1, s2)); 2. Ποια από τις ακόλουθες συνθήκες θα είχε ως αποτέλεσµα να καλεστεί η συνάρτηση dosomething µόνο αν οι συµβολοσειρές a και b ήταν ίσες; a. if (strcmp(a,b)) dosomething(); b. if (strcmp(a,b)==0) dosomething(); c. if (a==b) dosomething (); d. if (a[]==b[]) dosomething (); 3. Έχοντας υπόψη τις πιο κάτω δηλώσεις: char s1[10], s2[20]; char saturday[9]= Saturday ; char sunday[7]= Sunday ; εξηγήστε τι γίνεται µε την εκτέλεση των πιο κάτω εντολών: a. strcpy(s1, & sunday[3]); printf("%s\n", s1); b. printf("%d\n", strlen(saturday)); c. strcpy(s2, sunday); printf("%s\n", s2); d. strcat(s2, saturday); printf("%s\n", s2); 4. ίνεται µια συµβολοσειρά name[10]= Jonathan ; Γράψτε µια συνάρτηση που θα τυπώνει τη συµβολοσειρά αυτή αντίστροφα. ηλαδή θα τύπωνε στην έξοδο: nahtanoj Πρότυπο συνάρτησης: void reverse_print(char name[]);

Κεφάλαιο 5: είκτες και Πίνακες ( ιάλεξη 5-6) Να υλοποιήσετε τη συνάρτηση main() και µία συνάρτηση η οποία µε δεδοµένο εισόδου ακέραιο i, επιστρέφει το όνοµα της i-οστής ηπείρου. Για οποιοδήποτε άλλο ακέραιο να επιστρέφει οτι δεν υπάρχει. Πρότυπο συνάρτησης: char *getcontinent(char *continents[], int i); Hint: char *continents[]={"does not exist", "Europe", "America", "Africa", "Australia", "Asia"; Κεφάλαιο 6: οµές και Ενώσεις ( ιάλεξη 7) Να υλοποιήσετε µια δοµή στοίβας µε στατική δεύσµευση µνήµης και να υλοποιήσετε συνάρτηση η οποία θα υλοποιεί την ίδια λειτουργία µε την συνάρτηση Decimal2Binary (Κεφάλαιο 8 Άσκηση 1) αλλά θα είναι µη αναδροµική και θα κάνει χρήση της στοίβας. Πρότυπο συνάρτησης: void stackdecimal2binary(int number) Κεφάλαιο 7: Memory Allocation (malloc) ( ιάλεξη 8) 1. Ποιο σύνολο εντολών είναι ορθότερο όσο αφορά την δυναµική δεύσµευση µνήµης και γιατί? a. int *nump; nump = (int *) malloc(4); *nump = 17; free(nump); b. int *nump; nump = (int *) malloc(sizeof(int)); *nump = 17; free(nump); c. int *nump; nump = (int *) malloc(sizeof(20)); *nump = 17; free(nump); Κεφάλαιο 8: Αναδροµή ( ιάλεξη 9) 1. Να υλοποιήσετε µια αναδροµική συνάρτηση η οποία να εκτυπώνει την δυαδική αναπαράσταση ενός ακέραιου θετικού αριθµού που δίδεται ως παράµετρος της συνάρτησης. Πρότυπο συνάρτησης: void Decimal2Binary(int number) int2binary(16) τυπώνει στην οθόνη 10000 int2binary(7) τυπώνει στην οθόνη 111

int2binary(69) τυπώνει στην οθόνη 1000101 Η δυαδική μορφή ενός αριθμού, π.χ. 6, μπορεί να βρεθεί με τον ακόλουθο τρόπο, αν διαβάσετε τα υπόλοιπα από κάτω προς τα πάνω: 6:2 => Πηλίκο: 3, Υπόλοιπο:0 3:2 => Πηλίκο: 1, Υπόλοιπο:1 1:2 => Πηλίκο:0, Υπόλοιπο:1 6=110 102 Κεφάλαιο 9: Αφηρηµένοι Τύποι εδοµένων (ΑΤ ), Λίστες, ΑΤ Στοίβα και Ουρά ( ιάλεξη 10) 1. Ευθύγραμμη Απλά Συνδεδεμένη Λίστα: A) Ορίστε τη δομή μιας ευθύγραμμης απλά συνδεδεμένης λίστας που δημιουργείται με στατική δέσμευση μνήμης και θα περιέχει ακέραιους αριθμούς. B) Γράψετε μια μέθοδο που θα προσθέτει τα στοιχεία μιας συνδεδεμένης λίστας με τη χρήση της δομής στατικής μνήμης και θα επιστρέφει το συνολικό άθροισμα τους. Πρότυπο συνάρτησης: int addition(list *L) Κεφάλαιο 10: Στοίβες ( ιάλεξη 11) 1. Δίνεται η υλοποίηση μερικών πράξεων του ΑΤΔ στοίβας. Να ορίσετε τη δομή της στοίβας, να υλοποιήσετε της συναρτήσεις Push and Top και να ορίσετε τις αναγκαίες μεταβλητές, ώστε η συνάρτηση Push να προσθέτει το στοιχείο που εισάγεται και να επιστρέφει κάθε φορά το νέο άθροισμα. void MakeEmpty(Stack *S){ S->Length = 0; int IsEmpty(Stack *S){ return (S->Length == 0); void Pop(Stack *S){ if (!IsEmpty(S)) (S->Length)--;

Κεφάλαιο 11: Λίστες ( ιάλεξη 12) 1. Θεωρήστε πως έχουμε μια ευθύγραμμη απλά συνδεδεμένη λίστα (με δυναμική δέσμευση μνήμης) που κάθε κόμβος της περιέχει έναν ακέραιο αριθμό. Θεωρήστε ακόμα πως η λίστα είναι ταξινομημένη ώστε οι αριθμοί των κόμβων να πηγαίνουν από τον μικρότερο ως το μεγαλύτερο. Γράψτε μια μέθοδο που θα αφαιρεί από τη λίστα σας τους κόμβους με τους αριθμούς που επαναλαμβάνονται. Για παράδειγμα, αν η λίστα σας περιείχε τους κόμβους με αριθμούς: 1, 3, 5, 5, 5, 6, 7, 7, 9, 10 η συνάρτηση σας θα αφαιρούσε τους κόμβους με τα επαναλαμβανόμενα στοιχεία και θα είχαμε την εξής λίστα: 1, 3, 5, 6, 7, 9, 10. Δίνεται η δομή της ευθύγραμμης απλά συνδεδεμένης λίστας (με δυναμική δέσμευση μνήμης) η οποία να ακολουθηθεί στην υλοποίηση: typedef struct node { int data; struct node *next; NODE; typedef struct stack { NODE *head; int size; STACK;