Professional Documents
Culture Documents
PII - A10 - Stek, Red I Kružni Bafer
PII - A10 - Stek, Red I Kružni Bafer
2016.
A10 STEK
Napisati program u kojem treba:
• definisati linearnu strukturu sa LIFO disciplinom pristupa (STEK) koja služi za smještanje
cijelih brojeva, pri čemu je potrebno koristiti sekvencijalnu reprezentaciju steka,
• definisati funkciju koja stavlja broj na stek,
• definisati funkciju koja skida broj sa steka,
• definisati funkciju koja provjerava da li je stek prazan,
• definisati funkciju koja provjerava da li je stek pun,
• definisati funkciju koja skida sve brojeve sa steka i prebacuje ih u niz,
• u glavnom programu ilustrovati rad sa stekom tj. definisanim funkcijama.
#include <stdio.h>
int push(STEK *s, int podatak) {
#include <stdlib.h>
if (isFull(s)) return 0;
#define MAX 10
s->niz[++s->tos] = podatak;
return 1;
typedef struct stek {
}
int niz[MAX];
int tos;
int pop(STEK *s, int *podatak) {
} STEK;
if (isEmpty(s)) return 0;
*podatak = s->niz[s->tos--];
int isFull(STEK *s) { return s->tos == MAX - 1; }
return 1;
}
int isEmpty(STEK *s) { return s->tos == -1; }
void push(CVOR **tos, ARTIKAL *art) { int pop(CVOR **tos, ARTIKAL *art) {
CVOR *novi = (CVOR*)malloc(sizeof(CVOR)); if (*tos == 0) return 0;
novi->art = *art; CVOR *p = *tos;
novi->sljedeci = *tos; *art = p->art;
*tos = novi; *tos = p->sljedeci;
} free(p);
return 1;
}
int isFull(RED *red) { return red->r == MAX; } int obrisi(RED *red, int *podatak) {
if (isEmpty(red)) return 0;
int isEmpty(RED *red) { *podatak = red->niz[red->f++];
return red->f == -1 || red->f == red->r; return 1;
} }
typedef struct { char naziv[MAX]; short opcode; int bro; int *adrese; } INSTRUKCIJA;