Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define MAX 1000
  5. #define MAX_STR 18
  6.  
  7. typedef struct {
  8. int tamanho;
  9. int paginas[MAX];
  10. struct STACK *stack;
  11. } STACK;
  12.  
  13. void push(STACK *stack, int valor) {
  14. stack->paginas[stack->tamanho++] = valor;
  15. }
  16.  
  17. int pop(STACK *stack) {
  18. return stack->paginas[--stack->tamanho];
  19. }
  20.  
  21. STACK* criarStack() {
  22. STACK *pilha = (STACK*)malloc(sizeof(STACK));
  23. pilha->tamanho = 0;
  24. return pilha;
  25. }
  26.  
  27. void clear_f(STACK *forward){
  28. while(forward->tamanho > 0){
  29. pop(forward);
  30. }
  31. }
  32.  
  33. int main() {
  34. char stri[MAX_STR];
  35.  
  36. STACK *stack = criarStack();
  37. STACK *back = criarStack();
  38. STACK *forward = criarStack();
  39.  
  40. while(scanf("%s", stri) != EOF){
  41. if(strcmp(stri, "ENTER")==0) {
  42. push(back, 1);
  43. clear_f(forward);
  44. }
  45. else if(strcmp(stri, "BACK")==0) {
  46. pop(back);
  47. push(forward, 1);
  48. }
  49. else if(strcmp(stri, "FORWARD")==0) {
  50. pop(forward);
  51. push(back, 1);
  52. }
  53. }
  54.  
  55. back->tamanho = back->tamanho-1;
  56.  
  57. printf("BACK: %d\nFORWARD: %d", back->tamanho, forward->tamanho);
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement