Dev - C++ - Pilas de caracteres en c

 
Vista:

Pilas de caracteres en c

Publicado por Lor (2 intervenciones) el 18/03/2021 23:20:44
Buenas tardes. Quiero hacer una pila de caracteres pero no se como colocar los caracteres dentro de la pila, he esta revisando pero en la web solo hay ejemplos con números enteros no he encontrado un solo sitio don de tengan un ejemplo utilizando arreglos el código que tengo es el siguiente pero quiero que en ves de que la pila fucnione con números lo haga con caracteres


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
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
 
struct Nodo{
	int dato;
	Nodo *siguiente;
};
 
//Prototipos de Función
void agregarPila(Nodo *&,int);
void sacarPila(Nodo *&,int &);
 
int main(){
	Nodo *pila = NULL;	//Inicializamos pila
	int dato;
	char rpt;
 
	do{ //Pedimos todos los elementos de la pila
		cout<<"Digite un numero: ";
		cin>>dato;
		agregarPila(pila,dato);
 
		cout<<"\nDesea agregar otro numero a pila(s/n): ";
		cin>>rpt;
	}while((rpt == 's')||(rpt=='S'));
 
 
	cout<<"\nMostrando los elementos de la pila: ";
	while(pila != NULL){
		sacarPila(pila,dato);
 
		if(pila != NULL){
			cout<<dato<<" , ";
		}
		else{
			cout<<dato<<".";
		}
	}
 
	getch();
	return 0;
}
 
void agregarPila(Nodo *&pila,int n){
	Nodo *nuevo_nodo = new Nodo();
	nuevo_nodo->dato = n;
	nuevo_nodo->siguiente = pila;
	pila = nuevo_nodo;
 
	cout<<"\tElemento "<<n<<" agregado a PILA correctamente";
}
 
void sacarPila(Nodo *&pila,int &n){
	Nodo *aux = pila;
	n = aux->dato;
	pila = aux->siguiente;
	delete aux;
}
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++

Pilas de caracteres en c

Publicado por Rodrigo (539 intervenciones) el 18/03/2021 23:24:32
Que ocurre si cambias int por char en la definicion de dato en main, en la struct y en las funciones que agregan y sacan?
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

Pilas de caracteres en c

Publicado por Lor (2 intervenciones) el 18/03/2021 23:38:53
El programa corre con caracteres pero quiero hacerlo con cadena de caracteres

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
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
 
struct Nodo{
	char dato;
	Nodo *siguiente;
};
 
//Prototipos de Función
void agregarPila(Nodo *&,char);
void sacarPila(Nodo *&,char &);
 
int main(){
	Nodo *pila = NULL;	//Inicializamos pila
	char dato;
	char rpt;
 
	do{ //Pedimos todos los elementos de la pila
		cout<<"Digite un numero: ";
		cin>>dato;
		agregarPila(pila,dato);
 
		cout<<"\nDesea agregar otro numero a pila(s/n): ";
		cin>>rpt;
	}while((rpt == 's')||(rpt=='S'));
 
 
	cout<<"\nMostrando los elementos de la pila: ";
	while(pila != NULL){
		sacarPila(pila,dato);
 
		if(pila != NULL){
			cout<<dato<<" , ";
		}
		else{
			cout<<dato<<".";
		}
	}
 
	getch();
	return 0;
}
 
void agregarPila(Nodo *&pila,char n){
	Nodo *nuevo_nodo = new Nodo();
	nuevo_nodo->dato = n;
	nuevo_nodo->siguiente = pila;
	pila = nuevo_nodo;
 
	cout<<"\tElemento "<<n<<" agregado a PILA correctamente";
}
 
void sacarPila(Nodo *&pila,char &n){
	Nodo *aux = pila;
	n = aux->dato;
	pila = aux->siguiente;
	delete aux;
}
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 Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Pilas de caracteres en c

Publicado por Rodrigo (539 intervenciones) el 19/03/2021 00:13:36
Usa char* y preocupate de pedir memoria, copiar correctamente y liberala cuando no la uses mas.
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