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


0