Advertisement
xlujiax

PilasConArrEstaticos

Sep 21st, 2016
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. #define N 10
  7. int stackArr[N] = {}; //actua como un puntero constante, solo puede apuntar al valor [0]
  8.  
  9. /*
  10.  * Ni memoria dinanica ni strings en lab4
  11.  */
  12.  
  13. void imprimirArr(){
  14.     for (int i = 0; i < N; i++) {
  15.         cout<<stackArr[i] <<" ";
  16.     }
  17.     cout<<endl;
  18. }
  19.  
  20. int size(int* stack){
  21.     return stack - stackArr;
  22. }
  23.  
  24. bool isEmpty(int* stack){
  25.     return (size(stack)==0);
  26. }
  27.  
  28. int push (int* &stack, int value){ //int* = tipo de dato, & = pasamos el valor o referencia de la variable se pone con & porque queremos modificar el puntero tambien, no solo el valor
  29.     if(size(stack)==N) return 0;
  30.     *stack = value;
  31.     stack ++;
  32.     return 1;
  33. }
  34.  
  35. int peek (int* stack, int &value){
  36.     if(isEmpty(stack)) return 0;
  37.     value = *(stack-1);
  38.     return 1;
  39. }
  40.  
  41. int pop (int* &stack, int &value){
  42.     if(isEmpty(stack)) return 0;
  43.     stack --;
  44.     value = *stack;
  45.     return 1;
  46. }
  47.  
  48. int main(int argc, char** argv) {
  49.     int * stack;
  50.     stack = stackArr; // = &stackArr[0] - apunto al indice 0 de stackArr
  51.     imprimirArr();
  52.     for (int i = 0; i < N; i++) {
  53.         push(stack,i+1);
  54.     }
  55.     imprimirArr();
  56.     return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement