1 / 98

Στοιχειώδεις Δομές Δεδομένων

Στοιχειώδεις Δομές Δεδομένων. Τύποι δεδομένων στη C. Ακέραιοι ( int , long ) Αριθμοί κινητής υποδιαστολής ( float , double ) Χαρακτήρες ( char ). Από τους παραπάνω μπορούμε να φτιάξουμε σύνθετους τύπους. Π.χ. typedef struct { float x; float y; } point;. TexPoint fonts used in EMF.

Download Presentation

Στοιχειώδεις Δομές Δεδομένων

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Στοιχειώδεις Δομές Δεδομένων Τύποι δεδομένων στη C • Ακέραιοι (int, long) • Αριθμοί κινητής υποδιαστολής (float, double) • Χαρακτήρες (char) Από τους παραπάνω μπορούμε να φτιάξουμε σύνθετους τύπους Π.χ. typedef struct { float x; float y;} point; TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

  2. Πίνακες Πίνακας (array) Αμε στοιχεία τύπου T • Σύνολο στοιχείων ιδίου τύπου • Π.χ. πίνακας ακεραίων, πίνακας δεικτών σε ακέραιους, … • • Συνεχόμενες θέσεις στη μνήμη • Το i-oστοστοιχείοΑ[i-1]βρίσκεται στη θέση X + (i-1)*L, όπου Χ η • θέση του πρώτου στοιχείου Α[0]και L το μέγεθος του κάθε στοιχείου • • Αναφορά με χρήση ακέραιου δείκτη • Π.χ. ανάθεση τιμής στο 3ο στοιχείο του πίνακα Α[2]=t;

  3. Πίνακες Πίνακες στη C Στην C, το όνομα ενός πίνακα είναι δείκτης στο 1ο στοιχείο του Α[0] Στατική κατανομή μνήμης #define N 1000 void initialize(intA[]) { inti; for (i=0; i<N; i++) A[i]=0; } void main() { intA[N]; initialize(A); }

  4. Πίνακες Πίνακες στη C Δυναμική κατανομή μνήμης void initialize(int*A, int N) { A = malloc(N*sizeof(int)); for (i=0; i<N; i++) A[i]=0; } void main() { int*A; int N; read(N); initialize(A,N); }

  5. Πίνακες Πίνακες στη C Δυναμική κατανομή μνήμης void initialize(int*A, int N) { A = malloc(N*sizeof(int)); for (i=0; i<N; i++) A[i]=0; } void main() { int*A; int N; read(N); initialize(A,N); } Τι γίνεται αν δε γνωρίζουμε εκ των προτέρων τηvτιμή τουN;

  6. Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές Συντελεστής πληρότητας πίνακα A: όπου πλήθος αποθηκευμένων στοιχείων στον A μέγεθος του A • Επιθυμητές ιδιότητες : • α) περιορισμένη σπατάλη χώρου : σταθερά • β) μικρό συνολικό κόστος για οποιαδήποτε ακολουθία πράξεων Για να πετύχουμε την ιδιότητα (α) πρέπει να αντιγράφουμε τα στοιχεία σε μικρότερο πίνακα μετά από αρκετές διαγραφές

  7. Δυναμικοί πίνακες Δυναμικοί πίνακες με εισαγωγές και διαγραφές διπλασιασμός υποδιπλασιασμός 0 0 0 εισαγωγή με διαγραφή με 7 7 7 8 Επιτυγχάνεικαι συνολικό κόστος για εισαγωγές/διαγραφές 15

  8. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedefstruct node *link; struct node {Item item; link next;}; next:δείκτης σε κόμβο τύπου node node : item

  9. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; next:δείκτης σε κόμβο τύπου node node : item μηδενικός σύνδεσμος (NULL)

  10. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; next:δείκτης σε κόμβο τύπου node node : item μηδενικός σύνδεσμος (NULL) link head Για να προσπελάσουμε τα στοιχεία της λίστας χρειαζόμαστε ένα δείκτη στον πρώτο κόμβο της λίστας. Ο δείκτης αποθηκεύεται στη μεταβλητή head(τύπου link).

  11. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; next:δείκτης σε κόμβο τύπου node node : item σύνδεσμος προς τον πρώτο κόμβο link head κυκλική λίστα Σε ορισμένες περιπτώσεις που θέλουμε να επεξεργαστούμε τα στοιχεία της λίστας πολλαπλές φορές είναι βολικό να κάνουμε τη λίστα κυκλική

  12. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; next:δείκτης σε κόμβο τύπου node node : item δημιουργία νέου κόμβου link x = malloc(sizeof *x); x x->item = πεδίο itemτου κόμβου που δείχνει ο x x->next = πεδίο nextτου κόμβου που δείχνει ο x

  13. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; Εισαγωγή του κόμβου tμετά το x x->next x t

  14. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; Εισαγωγή του κόμβου tμετά το x x->next x t->next = x->next; t

  15. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; Εισαγωγή του κόμβου tμετά το x x t->next = x->next; t x->next = t;

  16. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; Διαγραφή του κόμβουμετά το x x->next x

  17. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; Διαγραφή του κόμβουμετά το x x->next x t t = x->next;

  18. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; Διαγραφή του κόμβουμετά το x x t t = x->next;x->next = t->next;

  19. Συνδεδεμένες Λίστες Συνδεδεμένη λίστα: Αποθηκεύει ένα σύνολο στοιχείων σε κόμβους. Κάθε κόμβος περιλαμβάνει ένα σύνδεσμο προς τον επόμενο κόμβο. typedef struct node *link; struct node {Item item; link next;}; Διαγραφή του κόμβουμετά το x x t t = x->next;x->next = t->next; free(t);

  20. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. αρχική θέση Π.χ. Ν=8, Μ=5 1 8 2 7 3 6 4 5

  21. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 8 2 7 3 6 4 5

  22. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 8 2 7 3 6 4 5

  23. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 8 2 7 3 6 4

  24. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 8 2 7 3 6 4

  25. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 8 2 7 3 6 4

  26. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 8 7 3 6 4

  27. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 8 7 3 6 4

  28. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 7 3 6 4

  29. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 7 3 6 4

  30. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 3 6 4

  31. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 1 3 6 4

  32. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 3 6 4

  33. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 3 6 4

  34. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 3 6

  35. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 3 6

  36. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. Π.χ. Ν=8, Μ=5 3

  37. Πρόβλημα του Josephus Ν άτομα στέκονται σε ένα κύκλο και περιμένουν να εκτελεστούν. Σε κάθε βήμα εκτελείται το Μ-οστό άτομο όπως διατρέχουμε τον κύκλο. Στον τελευταίο που θα μείνει δίνεται χάρη. #include <stdlib.h> typedefstruct node *link; struct node {int item; link next;}; main(intargc, char *argv[]){ inti, N=atoi(argv[1]), M=atoi(argv[2]); link t=malloc(sizeof *t), x=t; t->item=1; t->next=t; for (i=2; i<=N; i++){ x=(x->next=malloc(sizeof *x)); x->item=i; x->next=t; } while (x!=x->next){ for (i=1; i<M; i++) x=x->next; x->next=x->next->next; N--; } printf(“%d\n”, x->item); }

  38. Ταξινόμηση Συνδεδεμένης Λίστας Μη διατεταγμένη λίστα 5 2 12 8 1 ταξινόμηση 1 2 5 8 12

  39. Ταξινόμηση Συνδεδεμένης Λίστας Ταξινόμηση με εισαγωγή a 5 2 12 8 1 ψευδο-κόμβοι κεφαλής b Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  40. Ταξινόμηση Συνδεδεμένης Λίστας Ταξινόμηση με εισαγωγή a 5 2 12 8 1 t t= επόμενος κόμβος τηςa b x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next x Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  41. Ταξινόμηση Συνδεδεμένης Λίστας t= επόμενος κόμβος τηςa x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next Ταξινόμηση με εισαγωγή a 2 12 8 1 b 5 x t Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  42. Ταξινόμηση Συνδεδεμένης Λίστας t= επόμενος κόμβος τηςa x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next Ταξινόμηση με εισαγωγή a 2 12 8 1 t b 5 x Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  43. Ταξινόμηση Συνδεδεμένης Λίστας t= επόμενος κόμβος τηςa x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next Ταξινόμηση με εισαγωγή a 12 8 1 b 2 5 t x Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  44. Ταξινόμηση Συνδεδεμένης Λίστας t= επόμενος κόμβος τηςa x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next Ταξινόμηση με εισαγωγή a 12 8 1 t b 2 5 x Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  45. Ταξινόμηση Συνδεδεμένης Λίστας t= επόμενος κόμβος τηςa x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next Ταξινόμηση με εισαγωγή a 12 8 1 t b 2 5 x Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  46. Ταξινόμηση Συνδεδεμένης Λίστας t= επόμενος κόμβος τηςa x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next Ταξινόμηση με εισαγωγή a 12 8 1 t b 2 5 x Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  47. Ταξινόμηση Συνδεδεμένης Λίστας t= επόμενος κόμβος τηςa x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next Ταξινόμηση με εισαγωγή a 8 1 b 2 5 12 x t Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  48. Ταξινόμηση Συνδεδεμένης Λίστας t= επόμενος κόμβος τηςa x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next Ταξινόμηση με εισαγωγή a 8 1 t b 2 5 12 x Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  49. Ταξινόμηση Συνδεδεμένης Λίστας t= επόμενος κόμβος τηςa x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next Ταξινόμηση με εισαγωγή a 8 1 t b 2 5 12 x Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

  50. Ταξινόμηση Συνδεδεμένης Λίστας t= επόμενος κόμβος τηςa x= κόμβος της bπου προηγείται του t : ο tπρέπει να τοποθετηθεί στη θέση x->next Ταξινόμηση με εισαγωγή a 8 1 t b 2 5 12 x Έστω aη αρχική λίστα. Διατηρούμε μία ακόμα λίστα b που θα είναι διατεταγμένη. Για ευκολία τοποθετούμε ένα ψευδο-κόμβο κεφαλής στην αρχή κάθε λίστας Αρχικά η b περιλαμβάνει μόνο τονψευδο-κόμβο κεφαλής. Μέχρι να αδειάσει η a διαγράφουμε το πρώτο στοιχείο της a και το εισάγουμε στη σωστή του θέση στη b.

More Related