Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 - ΕΚΤΥΠΩΣΗ

4,146 views

Published on

ΣΤΟΙΒΑ

Published in: Education
  • Be the first to comment

  • Be the first to like this

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 - ΕΚΤΥΠΩΣΗ

  1. 1. C 2: . 1. 1. 2. 3. C: 4. C: 5. C: – ! "# $ 6. C: %& ' 7. C: ( # ' 8. C: ) 2. (* 1. + # ) , ' ) 2. + & # . # : 1..14 ! C. A. " 1. 1. # $ « » % & : • $ ! (push) % & (pop) , % ' (top) . push(2) top top 2 top 2 6 top 2 6 4 push(6) push(4) pop() top 2 6 push(3) top 2 6 3 : • $ ! % ( : • % ! & (Last In – First Out: LIFO) A. " 1. 2. ) % & # : • (init) • %& (push) • ( # (pop) • % (empty) • (full) * : • % % ( ) • ( ) " C % N . % (top) % % ' . top 2 6 4 : + ! C a[0] … a[1] a[2] a[2] a[N-1] top=2 2 6 4
  2. 2. A. " 1. 3. * C: ! # ) C % : • $ (struct) & : • , " STACK_SIZE • % (top) % % ' : • - 0…STACK_SIZE-1 • -1 . #define STACK_SIZE 10 /* Megethos pinaka stoivas */ typedef int elem; /* typos dedomenwn stoivas */ struct stack{ elem array[STACK_SIZE]; /* pinakas stoixeiwn */ int top; /*koryfi tis stoivas */ }; typedef struct stack STACK; /* Sinwnimo tis stoivas */ … top=2 2 6 4 - : 0 1 2 3 STACK_SIZE-1 array A. " 1. 4. * C: - % $ % % ' -1 /* ST_init(): arxikopoiei ti lista */ void ST_init(STACK *s) { s->top=-1; } … top=?? .(/: 0 1 2 3 STACK_SIZE-1 array … top=-1 0 1 2 3 STACK_SIZE-1 array 0 -: : • & % % ' ! A. " 1. 5. * C: , – 1 % + ! # "# ( ), top -1 ( N-1) /* ST_empty(): epistrefei TRUE/FALSE * analoga me to an i stoiva einai adeia */ int ST_empty(STACK s) { return s.top==-1; } /* ST_full(): epistrefei TRUE/FALSE * analoga me to an i stoiva einai gemati */ int ST_full(STACK s) { return s.top==STACK_SIZE-1; } 5 A. " 1. 6. * C: 2 " $ & ! top+1 ( ' ) /* ST_push(): Eisagei to x sti stoiva s * epistrefei TRUE: se periptwsi epitixias * FALSE: se periptwsi apotixias */ int ST_push(STACK *s,elem x) { if (ST_full(*s)) return FALSE; else { s->top++; s->array[s->top]=x; return TRUE; } } … top=2 2 6 4 0 1 2 3 STACK_SIZE-1 array .(/: 0 - ( . . ! «5»): … top=3 2 6 4 0 1 2 3 STACK_SIZE-1 array
  3. 3. A. " 1. 6. * C: 0& # $ # 3 top ( ' ) /* ST_pop(): Kanei eksagwgi poy einai stin korifi tis listas * epistrefei TRUE: se periptwsi epitixias * FALSE: se periptwsi apotixias */ int ST_pop(STACK *s,elem *x) { if (ST_empty(*s)) return FALSE; else { *x=s->array[s->top]; s->top--; return TRUE; } } … top=2 2 6 4 0 1 2 3 STACK_SIZE-1 array .(/: 0 -: …2 6 0 1 2 3 STACK_SIZE-1 array top=1 *x=4 A. " 1. 7. * C: $% % % project stack.dev : stack.h % stack.c ! stack_main.c % % . « & » ! % . * : • % «+ ! C – 14: 0 ! » A. " 2. 0' 1. % % % $$ * : • + % % % % % 2 • 0 % • 0& % ! -.- 0(+ -: & /2 135/2 67 1 67/2 33 1 33/2 16 1 16/2 8 0 8/2 4 0 4/2 2 0 2/2 1 0 1/2 0 1 top 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 (1) " push (1) " push (2) " pop (2) " pop 4 (135)10=(10000111)2 A. " 2. 0' 2. * % $ • # % & ' ") & # *# ( % ! ): • . .: + • * % & # *# ( ! % ): • 0 : + • - % & # *# ( ! % ): • 0 : + • . . : (5+3)*4-2 • % ' ' % ( ): • (5 + 3) * 4 - 2 • (5 3 +) * 4 - 2 • (5 3 +) 4 * - 2 • 5 3 + 4 * 2 - : • $ & # *# & % ! % . • # % « » . - ' 3 .
  4. 4. • 2 ( ). • 4 ( ). 2 • % % 3 ( % !) A. " 2. 0' 2. * % $ 2 2 4 + 6 1 * /0( # # : #()-: 2 4 + 6 1 * /0( # # : #()-: 4 6 • + ( ). 0& (4 % 2). 0% & (4+2). 0 • 6 ( ). A. " 2. 0' 2. * % $ 6 2 4 + 6 1 * /0( # # : #()-: 2 4 + 6 1 * /0( # # : #()-: 6 6 • 6 ( ). • * ( ). 0& (1 % 6). 0% & (1*6). 0 (6) A. " 2. 0' 2. * % $ 2 4 + 6 1 * /0( # # : 2 4 + 6 1 * /0( # # : #()-: 6 6 #()-: 6 1 1 • / ( ). 0& (6 % 6). 0% & (6/6). 0 (1) • # % ! % % 1. • ( : 2 4 + 6 1 * / • - % : (2+4)/(6*1) 1. A. " 2. 0' 2. * % ' $ 2 4 + 6 1 * /0( # # : #()-:
  5. 5. ). - % 0' 1: % $! 5 % ! % . ). - % 0' 2: ' ! $" 5 % ! ' ! ! + % ' ! % % . ). - % 0' 3: % $# + 5 C " 3 % % " % % 5 . ). - % 0' 4: * % % + 5 C " 3 % ' % ( 3 % - % ). 6 , +,-,*,/ % 5 ' 0..9. " 3 ! %! ! 5 .

×