SlideShare a Scribd company logo
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)
)! " ! :
• ! ( )
• *!" ( ! )
• + "
• !" " ( ! )
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;
}
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:
, . " ." # »
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
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;
}
}
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 , . %
! ! . $ ! ! " .
)! :
• " «! » ! ,
!" .
(. *
,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)

More Related Content

PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
PDF
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ (ΕΚΤΥΠΩΣΗ)
PDF
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
PDF
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11 (ΕΚΤΥΠΩΣΗ)
PDF
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6
PDF
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ (ΕΚΤΥΠΩΣΗ)
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)

What's hot (20)

PDF
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ (ΕΚΤΥΠΩΣΗ)
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 - ΕΚΤΥΠΩΣΗ
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)
PDF
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
PDF
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
PDF
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12 (ΕΚΤΥΠΩΣΗ)
PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
PDF
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
PDF
Η Γλώσσα C - Μάθημα 1 (Εκτύπωση)
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
PDF
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
PDF
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
PDF
ΠΛΗ30 ΜΑΘΗΜΑ 1.4
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 - ΕΚΤΥΠΩΣΗ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4 (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12 (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
Η Γλώσσα C - Μάθημα 1 (Εκτύπωση)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.4
Ad

More from Dimitris Psounis (20)

PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
PDF
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
PDF
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
PDF
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
PDF
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
PDF
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
PDF
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
PDF
ΠΛΗ31 - ΤΕΣΤ 33
PDF
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
PDF
ΠΛΗ31 ΤΕΣΤ 32
PDF
ΠΛΗ31 ΤΕΣΤ 31
PDF
ΠΛΗ31 ΤΕΣΤ 30
PDF
ΠΛΗ10 ΤΕΣΤ 35
PDF
ΠΛΗ10 ΤΕΣΤ 34
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΠΛΗ31 - ΤΕΣΤ 33
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΠΛΗ31 ΤΕΣΤ 32
ΠΛΗ31 ΤΕΣΤ 31
ΠΛΗ31 ΤΕΣΤ 30
ΠΛΗ10 ΤΕΣΤ 35
ΠΛΗ10 ΤΕΣΤ 34
Ad

Recently uploaded (7)

PPTX
Coklat Beige Ilustrasi 3 Dimensi Tugas Kelompok Presentasi.pptx
PDF
فێرکردن و فێربوونی مۆدێرن.pdf دەروازەیەک بۆ
PPTX
Slide Ibadah siang 29 mei 2025 jika .pptx
PDF
ಶ್ರೀ ಕ್ಷೇತ್ರ ಚಂಪಕಧಾಮ ಸ್ವಾಮಿ ದೇವಾಲಯSri Kshetra Champakadham Swamy Temple
PDF
"ಶ್ರೀ ಕ್ಷೇತ್ರ ಚಂಪಕಧಾಮ ಸ್ವಾಮಿ ದೇವಾಲಯ""Sri Kshetra Champakadham Swamy Temple"
PPTX
Ungu dan Kuning Modern Riset Pasar Persentasi (1).pptx
PPTX
PETA.pptx,a,amamamamamamamamamammamamamam
Coklat Beige Ilustrasi 3 Dimensi Tugas Kelompok Presentasi.pptx
فێرکردن و فێربوونی مۆدێرن.pdf دەروازەیەک بۆ
Slide Ibadah siang 29 mei 2025 jika .pptx
ಶ್ರೀ ಕ್ಷೇತ್ರ ಚಂಪಕಧಾಮ ಸ್ವಾಮಿ ದೇವಾಲಯSri Kshetra Champakadham Swamy Temple
"ಶ್ರೀ ಕ್ಷೇತ್ರ ಚಂಪಕಧಾಮ ಸ್ವಾಮಿ ದೇವಾಲಯ""Sri Kshetra Champakadham Swamy Temple"
Ungu dan Kuning Modern Riset Pasar Persentasi (1).pptx
PETA.pptx,a,amamamamamamamamamammamamamam

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ 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)