fork download
  1. #include <stdio.h>
  2. #include "stack.h"
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <string>
  6. #include <iostream>
  7. using namespace std;
  8.  
  9. // doan khai bao nay su dung voi char
  10.  
  11.  
  12. // typedef struct stack_node {
  13. // char data;
  14. // struct stack_node *next;
  15. // }stack_node;
  16.  
  17. // typedef struct _stack {
  18. // stack_node *top;
  19. // }Stack;
  20.  
  21. // void stack_construction(Stack *stack);
  22. // void stack_destroy(Stack *stack);
  23. // int is_stack_empty(Stack *stack);
  24. // void stack_pop(Stack *stack);
  25. // void stack_push(Stack *stack, char data);
  26. // void stack_full();
  27. // void display_stack(Stack *stack);
  28.  
  29. void stack_construction(Stack *stack) {
  30. if(!stack) {
  31. printf("ERORR ALLOCATION MEMORY\n");
  32. exit(1);
  33. }
  34. stack->top = NULL;
  35. }
  36.  
  37. void stack_destroy(Stack *stack) {
  38. stack_node *temperate;
  39. while(!is_stack_empty(stack)) {
  40. temperate = stack->top;
  41. stack->top = temperate->next;
  42. free(temperate);
  43. }
  44. }
  45.  
  46. void stack_pop(Stack *stack) {
  47. if(is_stack_empty(stack)) {
  48. printf("STACK RONG\n");
  49. exit(1);
  50. } else {
  51. stack_node *temperate = stack->top;
  52. stack->top = temperate->next;
  53. free(temperate);
  54. }
  55. }
  56.  
  57. void stack_push(Stack *stack, int data) {
  58. stack_node *temperate = (stack_node*)malloc(sizeof(stack_node));
  59. if(!temperate) {
  60. stack_full();
  61. exit(1);
  62. }
  63. temperate->data = data;
  64. temperate->next = stack->top;
  65. stack->top = temperate;
  66. }
  67.  
  68. void stack_full() {
  69. printf("NO MEMORY, STACK IS FULL\n");
  70. }
  71. int is_stack_empty(Stack *stack) {
  72. return (stack->top == NULL);
  73. }
  74.  
  75. void display_stack(Stack *stack) {
  76. stack_node *temperate;
  77. if(is_stack_empty(stack)) {
  78. printf("STACK RONG\n");
  79. exit(0);
  80. } else {
  81. temperate = stack->top;
  82. // printf("%d\n",temperate->data);
  83. // temperate = temperate->next;
  84. // printf("%d\n",temperate->data);
  85. while(temperate != NULL) {
  86. printf("%d\n",temperate->data);
  87. // cin>> temperate->data;
  88. temperate = temperate->next;
  89. }
  90. }
  91. }
  92.  
  93.  
  94. int main(int argc, char const *argv[])
  95. {
  96. Stack s;
  97. stack_construction(&s);
  98. printf("STACK PUSH\n");
  99. stack_push(&s,1);
  100. stack_push(&s,2);
  101. stack_push(&s,3);
  102. stack_push(&s,4);
  103. stack_push(&s,5);
  104. stack_push(&s,6);
  105. display_stack(&s);
  106. // printf("STACK POP\n");
  107. // stack_pop(&s);
  108. // stack_pop(&s);
  109. // display_stack(&s);
  110. // printf("DESTROY STACK\n");
  111. // stack_destroy(&s);
  112. // display_stack(&s);
  113.  
  114. // compute exponet = stack
  115. // printf("%lf",pow(2,10));
  116. // int t;
  117. // string s[1001];
  118. // scanf("%d",&t);
  119. // for(int i = 0 ; i < t ; i ++) {
  120. // cin >> s[i];
  121. // }
  122. // for(int i = 0 ; i < t ; i ++) {
  123. // printf("%d\n", check_parenthesis(s[i]));
  124. // }
  125. // bo thu vien stack.h di
  126. // de submit
  127. return 0;
  128. }
  129.  
  130.  
  131.  
  132. // double pow(int x, int n) {
  133. // Stack s;
  134. // stack_construction(&s);
  135. // while( n > 0) {
  136. // stack_push(&s,n);
  137. // n = n/2;
  138. // }
  139. // double tmp = 1;
  140. // int a;
  141. // while(!is_stack_empty(&s)) {
  142. // a = s.top->data;
  143. // stack_pop(&s);
  144. // if(a&1) tmp = tmp*tmp*x;
  145. // else tmp = tmp*tmp;
  146. // }
  147. // return tmp;
  148. // }
  149.  
  150. // int check_parenthesis(string s) {
  151. // Stack sa;
  152. // stack_construction(&sa);
  153. // int length = s.size();
  154. // for(int i = 0 ; i < length ;i++) {
  155. // stack_push(&sa,s[i]);
  156. // if(sa.top->data == ')') {
  157. // if( sa.top->next->data == '(') {
  158. // stack_pop(&sa);
  159. // stack_pop(&sa);
  160. // } else return 0;
  161. // } else if(sa.top->data == ']') {
  162. // if( sa.top->next->data == '[') {
  163. // stack_pop(&sa);
  164. // stack_pop(&sa);
  165. // } else return 0;
  166. // } else if(sa.top->data == '}') {
  167. // if( sa.top->next->data == '{') {
  168. // stack_pop(&sa);
  169. // stack_pop(&sa);
  170. // } else return 0;
  171. // }
  172. // }
  173. // return 1;
  174. // }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:2:10: fatal error: stack.h: No such file or directory
 #include "stack.h"
          ^~~~~~~~~
compilation terminated.
stdout
Standard output is empty