Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX 1000
- #define MAX_STR 18
- typedef struct {
- int tamanho;
- int paginas[MAX];
- struct STACK *stack;
- } STACK;
- void push(STACK *stack, int valor) {
- stack->paginas[stack->tamanho++] = valor;
- }
- int pop(STACK *stack) {
- return stack->paginas[--stack->tamanho];
- }
- STACK* criarStack() {
- STACK *pilha = (STACK*)malloc(sizeof(STACK));
- pilha->tamanho = 0;
- return pilha;
- }
- void clear_f(STACK *forward){
- while(forward->tamanho > 0){
- pop(forward);
- }
- }
- int main() {
- char stri[MAX_STR];
- STACK *stack = criarStack();
- STACK *back = criarStack();
- STACK *forward = criarStack();
- while(scanf("%s", stri) != EOF){
- if(strcmp(stri, "ENTER")==0) {
- push(back, 1);
- clear_f(forward);
- }
- else if(strcmp(stri, "BACK")==0) {
- pop(back);
- push(forward, 1);
- }
- else if(strcmp(stri, "FORWARD")==0) {
- pop(forward);
- push(back, 1);
- }
- }
- back->tamanho = back->tamanho-1;
- printf("BACK: %d\nFORWARD: %d", back->tamanho, forward->tamanho);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement