C/Visual C - programa que ayude a contar los elementos de la pila

 
Vista:
Imágen de perfil de Maria
Val: 18
Ha aumentado 1 puesto en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

programa que ayude a contar los elementos de la pila

Publicado por Maria (4 intervenciones) el 28/04/2021 05:37:01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
//Directrices al preprocesador
 
#include<stdio.h>
#include<conio.h>
#include <iostream>
 
#define MAX 5
 
 
//Declaraciones de tipo
// Declaración de la pila
typedef struct pila
{
   int elem[MAX]; //Arreglo que define la estructura de la pila
   int tope; //Variable que gestiona la posición del último elemento en la pila
};
 
 
//Prototipos de funciones
 
//Declaración de funciones
void set(pila *);
//Una función que no retorna valor
//Inicializar una variable de tipo pila
//El unico parametro es uno de tipo "PIla" pero lo que se pasa
//es un puntero, por eso se define el *
 
//Set (Configurar, inicializar)
 
int empty(pila); //Funcion que devuelve un valor de tipo entero
//recibe como parametro la pila como valor.
//Set Vacia
 
int full(pila);//Función que devuelve un valor de tipo entero
//recibe como parametro la pila como valor
//Full llena
 
 
void push(pila *,int);//Función que agrega elementos en la pila
//Push poner
//Reciben dos parámetros. 1 la pila, 2 elemento a insertar
 
 
 
 
void pop(pila *,int *);//Función que quita elementos de la pila
//Pop quitar
//Reciben dos parámetros. 1 La pila, 2 el elemento que se quitó de la pila
 
//Funci¢n Principal
void contar(pila *p);
 main()
{
   pila p,t; //Declaro las variables p y t de tipo pila
   int x,opc,flag=0;
 
 
   set(&p);//mandamos a inicializar es decir definir el tope en -1
   do
   {
 
      printf("\nMENU DE PILAS");
      printf("\n\n1-> Insertar elemento ");
      printf("\n2-> Eliminar elemento ");
      printf("\n3-> Mostrar elementos ");
      printf("\n4-> Contar elementos ");
      printf("\n5-> Salir");
      printf("\n");
      printf("\nDe su opci¢n : ");
      scanf("%d",&opc);
      switch(opc)
      {
	 case 1:
	    if(!full(p))
	    {
	       printf("\nDe el elemento a insertar : ");
	       scanf("%d",&x);
	       push(&p,x);
	    }
	    else
	    {
	       printf("\nLa pila est  llena");
	    }
	    break;
	 case 2:
	    if(!empty(p))//verificar que no está vacia
	    {
	       pop(&p,&x);
	       printf("\nEl elemento eliminado es %d",x);
	    }
	    else
	    {
	       printf("\nLa pila est  vac¡a");
	    }
	    break;
	 case 3://Para mostrar todos los elementos, se deben de sacar de una pila y utilizar una pila temporal
 
	    if(!empty(p))
	    {
	       printf("\nElementos de la pila");
	       printf("\n");
	       set(&t);//pila temporal
	       do //Sacar todos los elementos de p y ubicarlos en t
	       {
 
		  printf("\n%d",x);//Elementos manipulables
 
		  push(&t,x);
	       }while(!empty(p));//Se repite hasta que la pila p esté vacía
 
		   do //Sacar todos los elementos de t y regresarlos a p
	       {
		  pop(&t,&x);
		  push(&p,x);
	       }while(!empty(t));//Se repite hasta que la pila t esté vacía
	    }
	    else
	    {
	       printf("\nLa pila est  vac¡a\n");
	    }
	    break;
	 case 4:
	 	contar(pila *p,int cont);
 
 
	 	case 5:
	    flag=1;
	    break;
	 default:
	    printf("\nOpci¢n no v lida...");
      }
      if(!flag)
      {
	 printf("\n\nPresione una tecla para continuar...");
	 getch();
      }
      system("cls");
 
   }while(!flag);
   printf("\nHa finalizado el programa, presione cualquier tecla...");
   getch();
}
 
 
//Definiciones de funci¢n
 
void set(pila *p) //Recibe como parametro la pila
{
   (*p).tope=-1;//Inicializa el valor de la variable tope en -1
   //es decir que esta vacía
}
 
 
int empty (pila p) //recibe como parametro la pila
{
   return((p.tope)==-1); //verifica si el tope de la pila es -1
   //es decir que está vacia
 
}
 
 
int full(pila p)//Recibe como parámetro la pila
 
{
   return((p.tope)==(MAX-1)); //Verifica si está llena, tope =Max-1
}
//Funciones son igual que los algoritmos
void push(pila *p, int x)
{
   if(!full(*p))//Si no está llena
   {
      (*p).tope++;//Incrementamos el tope
      (*p).elem[(*p).tope]=x;//Y almacenamos la variable "x" en la pila
   }
   else
   {
      printf("\nOVERFLOW");
   }
   return;
}
 
void pop(pila *p, int *x)
{
   if(!empty(*p))//Verificamos que no esté vacía
   {
      *x=(*p).elem[(*p).tope];//almacenamos en x el valor que está en el tope de la pila
      (*p).tope--; //decrementamos el valor de la variable tope
   }
   else
   {
      printf("\nUNDERFLOW");
   }
 
   return;
}
   void contar(pila *p,int cont=0)
 {
   if(!empty(*p))
   {
    printf("Pila vacia....!");
   }
   else
   {
   	printf("hola");
   }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder