Submit Search
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
0 likes
2,671 views
Dimitris Psounis
.
Education
Read more
1 of 7
Download now
Downloaded 71 times
1
2
3
4
5
6
7
More Related Content
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
Dimitris Psounis
PDF
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6
Dimitris Psounis
PDF
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6
Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
What's hot
(20)
PDF
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 - ΕΚΤΥΠΩΣΗ
Dimitris Psounis
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ
Dimitris Psounis
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Dimitris Psounis
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Dimitris Psounis
PDF
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
Dimitris Psounis
PDF
Η Γλώσσα C - Μάθημα 1 (Εκτύπωση)
Dimitris Psounis
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
Dimitris Psounis
PDF
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
Dimitris Psounis
PDF
ΠΛΗ30 ΜΑΘΗΜΑ 1.4
Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 - ΕΚΤΥΠΩΣΗ
Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ
Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Dimitris Psounis
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
Dimitris Psounis
Η Γλώσσα C - Μάθημα 1 (Εκτύπωση)
Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
Dimitris Psounis
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
Dimitris Psounis
ΠΛΗ30 ΜΑΘΗΜΑ 1.4
Dimitris Psounis
Ad
More from Dimitris Psounis
(20)
PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Dimitris Psounis
PDF
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
Dimitris Psounis
PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Dimitris Psounis
PDF
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
Dimitris Psounis
PDF
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
Dimitris Psounis
PDF
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
Dimitris Psounis
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
Dimitris Psounis
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
Dimitris Psounis
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
Dimitris Psounis
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
Dimitris Psounis
PDF
ΠΛΗ31 - ΤΕΣΤ 33
Dimitris Psounis
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
Dimitris Psounis
PDF
ΠΛΗ31 ΤΕΣΤ 32
Dimitris Psounis
PDF
ΠΛΗ31 ΤΕΣΤ 31
Dimitris Psounis
PDF
ΠΛΗ31 ΤΕΣΤ 30
Dimitris Psounis
PDF
ΠΛΗ10 ΤΕΣΤ 35
Dimitris Psounis
PDF
ΠΛΗ10 ΤΕΣΤ 34
Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Dimitris Psounis
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Dimitris Psounis
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
Dimitris Psounis
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
Dimitris Psounis
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
Dimitris Psounis
ΠΛΗ31 - ΤΕΣΤ 33
Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
Dimitris Psounis
ΠΛΗ31 ΤΕΣΤ 32
Dimitris Psounis
ΠΛΗ31 ΤΕΣΤ 31
Dimitris Psounis
ΠΛΗ31 ΤΕΣΤ 30
Dimitris Psounis
ΠΛΗ10 ΤΕΣΤ 35
Dimitris Psounis
ΠΛΗ10 ΤΕΣΤ 34
Dimitris Psounis
Ad
Recently uploaded
(7)
PPTX
Coklat Beige Ilustrasi 3 Dimensi Tugas Kelompok Presentasi.pptx
sdcandimulyo1
PDF
فێرکردن و فێربوونی مۆدێرن.pdf دەروازەیەک بۆ
ASOYGASHlak
PPTX
Slide Ibadah siang 29 mei 2025 jika .pptx
harr6
PDF
ಶ್ರೀ ಕ್ಷೇತ್ರ ಚಂಪಕಧಾಮ ಸ್ವಾಮಿ ದೇವಾಲಯSri Kshetra Champakadham Swamy Temple
anishks1818
PDF
"ಶ್ರೀ ಕ್ಷೇತ್ರ ಚಂಪಕಧಾಮ ಸ್ವಾಮಿ ದೇವಾಲಯ""Sri Kshetra Champakadham Swamy Temple"
anishks1818
PPTX
Ungu dan Kuning Modern Riset Pasar Persentasi (1).pptx
Meinanda Aditya Yusuf
PPTX
PETA.pptx,a,amamamamamamamamamammamamamam
fatmawati731
Coklat Beige Ilustrasi 3 Dimensi Tugas Kelompok Presentasi.pptx
sdcandimulyo1
فێرکردن و فێربوونی مۆدێرن.pdf دەروازەیەک بۆ
ASOYGASHlak
Slide Ibadah siang 29 mei 2025 jika .pptx
harr6
ಶ್ರೀ ಕ್ಷೇತ್ರ ಚಂಪಕಧಾಮ ಸ್ವಾಮಿ ದೇವಾಲಯSri Kshetra Champakadham Swamy Temple
anishks1818
"ಶ್ರೀ ಕ್ಷೇತ್ರ ಚಂಪಕಧಾಮ ಸ್ವಾಮಿ ದೇವಾಲಯ""Sri Kshetra Champakadham Swamy Temple"
anishks1818
Ungu dan Kuning Modern Riset Pasar Persentasi (1).pptx
Meinanda Aditya Yusuf
PETA.pptx,a,amamamamamamamamamammamamamam
fatmawati731
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
1.
C 3: . 1. 1. 2. 2. 1. 2. C: 3. C: 4.
C: ! – " # 5. C: $ %# 6. C: %# 7. C: & ! 3. " 1. 2. C: 3. C: 4. C: ! – " 5. C: ! – # 6. C: $ %# 7. C: %# 8. C: & ! . A. 1. 1. « » ! : • ! (enqueue) , " • ! (dequeue) , enqueue(2) 2 : • ! " # ! $ ! % & : • ' ! # ! ! ! # ! (First In – First Out: FIFO) enqueue(4) 2 4 4 dequeue( ) enqueue(5) 4 enqueue(3) 4 5 5 3 A. 1. 2. ( ' : • (init) • $ (enqueue) • ! (dequeue) • ! (empty) • ! (full) )! " ! : • ! ( ) • *!" ( ! ) • + " • !" " ( ! )
2.
A. 2. *!" 1. , %
! # " ! ( ) ! : • - ! N ! • ." (finish) ! " • (, 0) /"# C a[0] … a[1] a[2] a[2] a[N-1] finish=2 4 5 34 5 3 A. 2. *!" 2. )" ! C: "# & C " : • (struct) : • - QUEUE_SIZE • ." (finish) ! " : • *! 0…QUEUE_SIZE-1 " • -1 . #define QUEUE_SIZE 10 /* Megethos pinaka ouras */ typedef int elem; /* typos dedomenwn ouras */ struct queue{ elem array[QUEUE_SIZE]; /* pinakas stoixeiwn */ int finish; /* telos tis ouras */ }; typedef struct queue QUEUE; /* Sinwnimo tis ouras */ … finish=2 2 6 4 * ! : 0 1 2 3 QUEUE_SIZE-1 array A. 2. *!" 3. )" ! C: * ! ! " -1 /* QU_init(): arxikopoiei tin oura */ void QU_init(QUEUE *q) { q->finish=-1; } … finish=?? 0&1: 0 1 2 3 QUEUE_SIZE-1 array … finish=-1 0 1 2 3 QUEUE_SIZE-1 array ,'*: : • ! ! ! " 2 ! A. 2. *!" 4. )" ! C: -" – + / ! ! ( ! # ), ." ! ." finish -1 ( N-1) /* QU_empty(): epistrefei TRUE/FALSE * analoga me to an i oura einai adeia */ int QU_empty(QUEUE q) { return q.finish==-1; } /* QU_full(): epistrefei TRUE/FALSE * analoga me to an i oura einai gemati */ int QU_full(QUEUE q) { return q.finish==QUEUE_SIZE-1; }
3.
5 A. 2. *!" 5. )"
! C: % " $ ! # finish+1 ( 2 ) /* QU_enqueue(): Eisagei to x stin oura q * epistrefei TRUE: se periptwsi epitixias * FALSE: se periptwsi apotixias */ int QU_enqueue(QUEUE *q,elem x) { if (QU_full(*q)) return FALSE; else { q->finish++; q->array[q->finish]=x; return TRUE; } } … finish=2 2 6 4 0 1 2 3 QUEUE_SIZE-1 array 0&1: ,'* (!. . ! «5»): … finish=3 2 6 4 0 1 2 3 QEUEUE_SIZE-1 array A. 2. *!" 6. )" ! C: *! % #$ ( ! # ) : 1. *! ! ( ! 2 ) 2. ! " ! 3. # finish ( # 1) … finish=2 2 6 4 0 1 2 3 QUEUE_SIZE-1 array 0&1: ,'*: …6 4 0 1 2 3 QUEUE_SIZE-1 array finish=1 *x=2 A. 2. *!" 6. )" ! C: *! % ## /* QU_dequeue(): Kanei apomakrinsi tou prwtou stoixeiou tis ouras * epistrefei TRUE: se periptwsi epitixias * FALSE: se periptwsi apotixias */ int QU_dequeue(QUEUE *q,elem *x) { int i; if (QU_empty(*q)) return FALSE; else { /* 1. Apothikeysi tou stoixeiou pou eksagetai*/ *x=q->array[0]; /* 2. Aristeri metakinisi twn stoixeiwn kata mia thesi */ for (i=0; i<q->finish; i++) q->array[i]=q->array[i+1]; /* 3. To finish meiwnetai kata 1 */ q->finish--; return TRUE; } } A. 2. *!" 7. )" ! C: # " " project queue.dev ! : ' queue.h ! ! " ' queue.c # ' main.c ! ! ! . « » ! # !" " . )! : • ' ! ! ! " «/"# C – 14: , . " ." # »
4.
A. 3. + " 1.
+ " # ! ! ! , ! ! . ! ! . " . " "" ." ! ." ( ). / ! : enqueue(2) 2 enqueue(4) 2 4 4 dequeue( ) enqueue(5) 4 enqueue(3) 4 5 5 3 start=0 finish=0 start=0 finish=1 start=1 finish=1 start=1 finish=2 start=1 finish=3 start=-1 finish=-1 A. 3. + " 1. + " # / ! ( ) ! ." , ! 2 " ! ( ! ! ! ) , " ! 3! !" 2 " ! ! " ." ! ! " ( ! ! 1-1 0) 4 5 3 start=1 finish=3 0 1 2 3 array 4 5 6 7 0 array 1 2 34 5 6 7 start=1 finish=3 2 61 start=6finish=0 0 1 2 3 array 4 5 6 7 0 array 1 2 34 5 6 7start=6 finish=1 4 5 3 2 6 1 A. 3. + " 2. )" ! C: "# # & C " : • (struct) : • - QUEUE_SIZE • ." (start finish) ! " ( start=finish=-1 ). #define QUEUE_SIZE 10 /* Megethos pinaka ouras */ typedef int elem; /* typos dedomenwn ouras */ struct queue{ elem array[QUEUE_SIZE]; /* pinakas stoixeiwn */ int start; /* arxi tis ouras */ int finish; /* telos tis ouras */ }; typedef struct queue QUEUE; /* Sinwnimo tis ouras */ * ! : 0 array 1 2 34 5 6 7 start=1 finish=3 4 5 3 A. 3. + " 3. )" ! C: * ! # ! " -1 /* QU_init(): arxikopoiei tin oura */ void QU_init(QUEUE *q) { q->start =-1; q->finish=-1; } 0&1: ,'*: 0 array 1 2 34 5 6 7 QUEUE_SIZE=8 start=?? finish=?? 0 array 1 2 34 5 6 7 QUEUE_SIZE=8 start=-1 finish=-1
5.
A. 3. + " 4.
)" ! C: -" – + # ! ." ! ." start ( ." finish) -1 • * " ! ( 2 " ! . # ! ! ! ! . " ! ) /* QU_empty(): epistrefei TRUE/FALSE * analoga me to an i oura einai adeia */ int QU_empty(QUEUE q) { return q.finish==-1; } A. 3. + " 5. )" ! C: -" – / #! ! ! # ." ! ." finish 1 " ! ." start ( " start==finish+1) • ! ! ! finish=QUEUE_SIZE-1 ! ! " start==0 * ! ! 4 # : /* QU_full(): epistrefei TRUE/FALSE * analoga me to an i oura einai gemati */ int QU_full(QUEUE q) { return q.start==(q.finish+1)%QUEUE_SIZE; } )! : • " % ! 2 ! " ! # (/"# C – 4). • , # ! # " ! ! start ! , 0. A. 3. + " 6. )" ! C: % #" $ ( 2 ) : • ' finish ! ! ! : • ' finish+1 ( finish < QUEUE_SIZE-1) • ' 0 ( finish = QUEUE_SIZE-1) • ' ! finish. 0&1: 0 array 1 2 34 5 6 7 start=1 finish=3 4 5 3 0 array 1 2 34 5 6 7 start=1 4 5 35 finish=4 QUEUE_SIZE=8 QUEUE_SIZE=8 5 ,'* (!. . ! «5»): A. 3. + " 6. )" ! C: % $ /* QU_enqueue(): Eisagei to x stin oura q * epistrefei TRUE: se periptwsi epitixias * FALSE: se periptwsi apotixias */ int QU_enqueue(QUEUE *q,elem x) { if (QU_full(*q)) return FALSE; else { if (QU_empty(*q)) { q->start=0; q->finish=0; } else { q->finish=(q->finish+1)%QUEUE_SIZE; } q->array[q->finish]=x; return TRUE; } }
6.
start=1 A. 3. + " 6.
)" ! C: *! % # ( ! # ) ! ( 2 ): • *! start (# ! 2 ) : • * start < ! QUEUE_SIZE-1, start=start+1 • * start = QUEUE_SIZE-1 start=0 0&1: 0 array 1 2 34 5 6 7 start=1 finish=3 4 5 3 0 array 1 2 34 5 6 7 5 3 QUEUE_SIZE=8 QUEUE_SIZE=8 5 ,'* *x=4 finish=3 A. 3. + " 6. )" ! C: *! % /* QU_dequeue(): Kanei apomakrinsi tou prwtou stoixeiou tis ouras * epistrefei TRUE: se periptwsi epitixias * FALSE: se periptwsi apotixias */ int QU_dequeue(QUEUE *q,elem *x) { if (QU_empty(*q)) return FALSE; else { *x=q->array[q->start]; if (q->start == q->finish) /* H oura adeiase */ { q->start=-1; q->finish=-1; } else { q->start=(q->start+1)%QUEUE_SIZE; } return TRUE; } } A. 3. + " 7. )" ! C: " " project circular_queue.dev ! : ' queue.h ! ! " ' queue.c # ' main.c ! ! ! . « » ! # !" " . (. * ,2 1: ' ' ! $ + ! ! ! # " ! $ + ( ! ) . " # 80 . + ! " 5 ! " . % . " ! !# ! " . ' ! " ! ( ! ! " # ): 52 " . . $ ! !# ! " ! : * « » ! # , ! , "" # ! . * , ! " . * # " . ! " ! ! " ! 1 ! " . % !# !# ! ! ! . ' " . 2 , . % ! ! . $ ! ! " . )! : • " «! » ! , !" .
7.
(. * ,2 2: !
, ! ! ! ! ! $ ! ( " , " ! ). - ! " ! « » : 1 ! ! $ ! . ( . ! ) + ! ! " ! , ! ! # "" " project ! " . )! : • " «! » ! , !" . (. * ,2 3: , ! % " ! . " ! H ! !# . ,! project ! " # # . ! ! " main, # ! . ! ! ,1 ! ! ! . " . )! : ! . ( ! !. . ! ) % ! , ! " ! , " . void QU_print(QUEUE *q) (. * ,2 4: * 2 ,! project 2 3, # $ ! "# : 2 ( ! # " , ! " , . .) % ! . ! void QU_reverse(QUEUE *q)
Download