Διάλεξη Ε3: Επανάληψη Επανάληψη για την ενδιάμεση εξέταση Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Παναγιώτης Ανδρέου Ε3-
Είναι ισοδύναμα; typedef struct ode { t data; struct ode *ext; NODE; A. NODE ; B. NODE *; ΟΧΙ Ε3-
Είναι ισοδύναμα; typedef struct ode { t data; struct ode *ext; NODE; A. NODE ; B. struct ode ; ΝΑΙ Ε3-3
Τι χρειάζεται να προστεθεί για να είναι ισοδύναμα; typedef struct ode { t data; struct ode *ext; NODE; struct ode { t data; struct ode *ext; ; NODE ;??? NODE ; A. eum NODE{ode; B. #defe NODE ode C. typedef ode NODE; D. Καμία από τις επιλογές! Ε3-4
Ποιο είναι το σωστό; typedef struct studet { char* ame; t d; ; studet studets[]; A. studets[5]->ame test ; B. studets[5].ame test ; C. *(studets+5).ame test ; D. Καμία από τις επιλογές! Ε3-5
A. *s.ame test ; B. (*s).ame test ; C. s->ame test ; Ποιο είναι το σωστό; typedef struct studet { char* ame; t d; ; studet *s; D. Καμία από τις επιλογές! Ε3-6
Ποιο είναι το σωστό; typedef struct studet { char* ame; t d; ; studet *s; A. s malloc( szeof( studet ) ); B. s (studet*) malloc( szeof( studet ) ); C. s (studet*) malloc( szeof( studet* ) ); D. Καμία από τις επιλογές! Ε3-7
Ποιο είναι το σωστό; char* str NULL; str (char*) malloc( szeof( (char) ) * ); str ths s a test ; prtf( %s, str); A. ths s a test B. ths C. th D. Comple error E. Segmetato Fault Ε3-8
Ποιο είναι το σωστό; t a[] {5, 5, 34, 54, 4,, 5, 7; t *p &a[]; t *q &a[]; prtf("%d", q-p); A. 9 B. C. 8 D. Comple error Ε3-9
Ποιο είναι το σωστό; typedef struct Studet{ char *ame; t d; ; t ma() { Studet *s; s->d 3456; A. Ο κώδικας θα δημιουργήσει σφάλμα rutme. B. Ο κώδικας δεν κάνει comple. C. H αρχικοποίηση έπρεπε να ήταν p.d3456; D. Ο κώδικας είναι σωστός. Ε3-
Ποιο είναι το σωστό; //Θεωρείστε υλοποίηση στοίβας όπως στις διαλέξεις STACK s; για να αρχικοποιήσουμε την στοίβα; A. MakeEmpty(s); B. MakeEmpty(*s); C. MakeEmpty(&s); D. Η στοίβα είναι ήδη αρχικοποιημένη E. Καμία από τις επιλογές! Ε3-
Ποιο είναι το σωστό; //Θεωρείστε υλοποίηση στοίβας όπως στις διαλέξεις STACK *s; για να αρχικοποιήσουμε την στοίβα; A. MakeEmpty(s); B. MakeEmpty(*s); C. MakeEmpty(&s); D. Η στοίβα είναι ήδη αρχικοποιημένη E. Καμία από τις επιλογές! Ε3-
Δεδομένης μίας υλοποίησης στοίβας με ΔΔΜ typedef struct ode { t data; struct ode *ext; NODE; το πιο κάτω είναι Σωστό ή Λάθος; vod Pop(STACK *S) { NODE *p NULL; p S->head; S->head p->ext; free(p); (S->sze)--; typedef struct stack { NODE *head; t sze; STACK; ΛΑΘΟΣ Ε3-3
Δεδομένης μίας υλοποίησης στοίβας με ΔΔΜ typedef struct ode { t data; struct ode *ext; NODE; typedef struct stack { NODE *head; t sze; STACK; το πιο κάτω είναι Σωστό ή Λάθος; t IsEmpty(STACK *S) { retur (S->sze ); ΣΩΣΤΟ Ε3-4
Δεδομένης μίας υλοποίησης στοίβας με ΔΔΜ typedef struct ode { t data; struct ode *ext; NODE; το πιο κάτω είναι Σωστό ή Λάθος; vod Push(STACK *S, t x){ NODE *p NULL; p->data x; p->ext S->head; S->head p; (S->sze) ++; typedef struct stack { NODE *head; t sze; STACK; ΛΑΘΟΣ Ε3-5
Να αποδείξετε ότι Μαθηματική Επαγωγή + 3+ 5+... + ( ) για >. Απόδειξη: Επαληθεύουμε την Π() ως εξής: Υποθέτουμε ότι ισχύει η Π(k), δηλαδή ότι + 3+ 5+... + (k ) k Και θα αποδείξουμε ότι ισχύει η Π(k+): + 3+ 5+... + (k ) + (( k + ) ) [ + 3+ 5+... + (k )] + (k + ) k + k + [Επαγωγική υπόθεση] ( k +) + 3+ 5+... + (( k + ) ) ( k + ) [Το οποίο είναι το ζητούμενο] Ε3-6
Ορισμός : Επανάληψη Χρήσιμων Μαθηματικών Ορισμών log x a b ff x b a Χρήσιμοι νόμοι λογάριθμων: log ab log a + log b log a b b. log a log ab log a log b log a b (log c b) (log c a) b log b x x log a log (log ) log * log log log +log xlog log (commo), log e (l - atural), log (lg - bary) π.χ., log log log δεν ορίζεται Ορισμός : π.χ., x max{ a a x,t( a) x m{ a a x,t( a) 63 (floor) (celg) 5.7 6, 5.634 5 Ε3-7
Ακολουθίες και Αθροίσματα * log log log + Το οποίο προκύπτει αλλιώς ως: Άθροισμα Γεωμετρικής Προόδου... /4 / 6 ) )( ( ) ( log + + + + + + + + + + a a a Ε3-8
Ανάλυση Παράδειγμα: Ανάλυση Χρόνου Εκτέλεσης vod mystery(){ for (; <lg; ++){ for (j;j< ;j++){ sum++; Εσωτερικός Βρόγχος: Εξωτερικός Βρόγχος: OL lg IL lg Εσωτερικός Βρόγχος Εξωτερικός Βρόγχος IL j lg ( lg + )( lg + ) 6 lg ( 3 ) Ε3-9
Ανάλυση Παράδειγμα: Ανάλυση Χρόνου Εκτέλεσης vod mystery(){ for (; <; ++){ for (j;j<*;j++){ sum++; Εσωτερικός Βρόγχος: Εξωτερικός Βρόγχος: OL IL Εσωτερικός Βρόγχος Εξωτερικός Βρόγχος IL * j ( +) ( 3 ) Ε3-
Ανάλυση Παράδειγμα: Ανάλυση Χρόνου Εκτέλεσης vod mystery3(){ for (; <; ++){ for (j*;j>;j--){ sum++; Εσωτερικός Βρόγχος: Εξωτερικός Βρόγχος: OL IL Εσωτερικός Βρόγχος Εξωτερικός Βρόγχος IL * j ( +) ( 3 ) Ε3-
Παράδειγμα: Αντικατάσταση vod mystery4(t ){ for (; <; ++){ sum++; f(>) retur mystery4(/) + mystery4(/); else retur ; Μορφή T() + xt(/) Ε3-
Παράδειγμα: Αντικατάσταση Έχουμε την αναδρομική εξίσωση Τ() T(/) +, για κάθε > T() Τότε, αντικαθιστώντας το Τ(/) με την τιμή του παίρνουμε Τ() T(/) + // Εκτέλεση (T(/4) + /) + // Εκτέλεση ²Τ(/4) + + // Πράξεις ³Τ(/8) + + + // Εκτέλεση 3 k Τ(/ k ) + k. // klog k k Τ() + k. // k, Τ(/ k )T() log + log. // Πράξεις + log // k, Τ(/ k )T() Θ(log ) Ε3-3
T() xt(/) + Παράδειγμα: Αντικατάσταση a, b, c, d b d ab d T() O( log()) T() O(log()) Ε3-4