Dev - C++ - necesito una ayuda con este programa

 
Vista:
Imágen de perfil de Josue
Val: 18
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

necesito una ayuda con este programa

Publicado por Josue (8 intervenciones) el 13/04/2020 16:35:26
El programa ya en si lo llevo así pero en Menú tengo una opción de eliminar pero necesito que eliminé Cualquier posición de la pila por ejemplo en la pila tengo 7,8,9,5, y quiero eliminar el 9( también digamos que tengo dos 9 nesecito que el 9 que elija también se elimine ) no el que encuentre primero . lo cual a como lo ise siempre elimina la primera posición de la pila necesito su ayuda


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
#include<Conio.h>
#include<stdio.h>
#include<iostream>
 
struct Nodo
{
	int dato;
	Nodo *sgt;
};
 
void Menu();
 
void pushpila(Nodo *&, int);
void poppila(Nodo*&, int &);
void viewpila(Nodo *);
 
int main()
{
 
	Menu();
 
	getch();
	return 0;
}
 
void Menu()
{
 
	Nodo *pila = NULL;
    int x;
	char r;
 
{
 
int op;
do
 
{
 
 
printf("\nMENU DE PILAS");
printf("\n 1.- Ingresar elementos a la Pila");
printf("\n 2.- Eliminar elementos a la Pila");
printf("\n 3.- Visualizar elementos de la pila");
printf("\n 4.- Salir");
printf("\nSelecione una opcion:  ");
scanf("%d",&op);
 
     switch(op)
         {
          case 1:
          	 do{
 
          		printf("Digite el Numero que Desea Agregar a la Pila:\n");
          		scanf("%d",&x);
          		pushpila(pila,x);
 
          		printf("\n\tDesea Agregar Mas Elementos de la Pila\n s(Si)                  n(No)\n");
          		scanf("%s",&r);
			  }while((r=='S')||(r=='s'));
 
          getch();
          break;
 
         case 2:
         	if (pila != NULL)
         	{
 
			 do
          	 {
			   if (pila != NULL)
			 {
 
          		poppila(pila,x);
          		printf("\n ");
          		getch ();
 
          		printf("\n\tDesea Eliminar Mas Elementos de la Pila\n s(Si)                  n(No)\n");
          		scanf("%s",&r);
			}
			else
			 {
 
			 	printf("Pila Vacia --->Subdesbordamiento<---");
			 	getch ();
			 	break;
			 }
			 }while((r=='S')||(r=='s'));
 
 
			 }
			 else
			 {
 
			 	printf("Pila Vacia --->Subdesbordamiento<---");
			 }
 
          getch();
         break;
 
         case 3:
 
          printf("Mostrando Elementos en la Pila:\n");
          viewpila(pila);
          getch();
       break;
 
     case 4:
       break;
     }
}
while(op!=4);
}
}
 
 
///Funci�n Para Agregar Elementos a la Pila
void pushpila(Nodo *&pila, int n)
{
	Nodo *nuevo_nodo = new Nodo();
 
	nuevo_nodo -> dato = n;
	nuevo_nodo -> sgt = pila;
	pila = nuevo_nodo;
 
	printf("\tEl Dato '%d' Agregado Corectamente a Pila\n",n);
 
}
 
///Funcion Para Quitar Elementos de la Pila
void poppila(Nodo*&pila,int &n)
{
	Nodo *temp = pila;
	n = temp->dato;
	pila = temp->sgt;
 
	delete temp;
	printf("\tEl Dato '%d' Eliminado Corectamente de la Pila\n",n);
 
}
 
//Funcion Para Mostrar Los Elementos de la Pila
void viewpila(Nodo *pila)
{
	Nodo *temp = new Nodo();
 
	temp = pila;
 
	if (temp != NULL)
	{
	while(temp != NULL)
	{
		printf("%d\n",temp->dato);
		temp = temp->sgt;
	}
    }
    else
	{
 
        printf("Pila Vacia, Por Favor, Ingrese Datos En Ella\n");
	}
}
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
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

necesito una ayuda con este programa

Publicado por Rodrigo (539 intervenciones) el 14/04/2020 08:53:15
Podrias usar 2 pilas. Vas sacando de una de ellas y comparas con el numero que quieres borrar.
Es el numero a borrar? No haces nada.
No es? Lo metes a la otra pila.
Asi hasta que se acaben todos los elementos.
Luego vacias la segunda pila en la primera, que ya esta vacia del proceso anterior.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jospts
Val: 18
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

necesito una ayuda con este programa

Publicado por Jospts (8 intervenciones) el 14/04/2020 15:20:38
Es decir hago una pila auxiliar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar