Tda pila, leer y insertar un archivo.


03 de Febrero del 2020

necesito resolver un "TDA PILA" donde se pueda colocar un dato en un nodo de la pila insertado de tipo "string" aunque tengo que utilizar los datos de la libreria "stack" pero nose como haceelo. esto es lo que tengo.

 

 


#include<iostream>
#include<stdlib.h>
#include <conio.h>
#include<cstdlib>

//Definicion de la Estructura
using namespace std;

struct Nodo {
char let;//para obtener caracteres
struct Nodo *sgte;
};

typedef struct Nodo *Puntero;

class Pila {
public:
Pila(void);
void Apilar(int);
int Desapilar(void);
void tope(void);
bool PilaVacia(void);
void MostrarPila(void);
void DestruirPila(void);

private:
Puntero Tope;

};
Pila::Pila(void) {
Tope == NULL;
}

bool Pila::PilaVacia(void) {
if (Tope == NULL)
return true;

else
return false;
}

 


//apilar datos en la Pila
void Pila::Apilar(int x) {
Puntero p_aux;
p_aux = new(struct Nodo);
p_aux->let = x;
p_aux->sgte = Tope;
Tope = p_aux;
}

//eliminara el elemento del tope de la pila ingresado
int Pila::Desapilar(void) {
int x;
Puntero p_aux;
if (Tope == NULL)
cout << "nnt la Pila esta vacia";
else {
p_aux = Tope;
x = p_aux->let;
Tope = Tope->sgte;
delete(p_aux);
}
return x;
}

//nos mostrara todos los elementos ingresados
void Pila::MostrarPila(void) {
Puntero p_aux;
p_aux = Tope;

while (p_aux != NULL) {
cout << "ttt" << p_aux->let << endl;
p_aux = p_aux->sgte;
}
}

//destruye la pila completamente
void Pila::DestruirPila(void) {
Puntero p_aux;

while (Tope != NULL) {
p_aux = Tope;
Tope = Tope->sgte;
delete(p_aux);
}

}


void menu(void) {
cout << "nt Pila nn";
cout << "t 1.Entrada" << endl;
cout << "t 2.Eliminar de la pila" << endl;
cout << "t 3.Mostrar " << endl;
cout << "t 4.Extraer" << endl;
cout << "t 5.salir" << endl;
cout << "t ESCOGA UNA OPCION" << endl;
}

int main(void) {
system("color f9");
Pila pila;
char x;
int op;

do {
menu(); cin >> op;

switch (op)
{
case 1:cout << "nt ingrese numero para la pila: "; cin >> x;
pila.Apilar(x);
cout << "nntt Numero(" << x << ")agregado en la pila.nn";

break;


case 2:
if (pila.PilaVacia() == true)
cout << "nnt la pila esta vacia.";
else {
x = pila.Desapilar();
cout << "nnt numero (" << x << ") eliminado de la pilan";
}
break;

case 3:
cout << "nntt mostrado la pila nn ";
if (pila.PilaVacia() != true)
pila.MostrarPila();
else
cout << "nnt la pila esta vacia. " << endl;
break;

 

case 4:
pila.DestruirPila();
cout << "nnt pila ha sido DESTRUIDA nn";
break;

}
cout << endl << endl;
system("pause");
system("cls");
} while (op != 5);

system("pause");
return 0;
}



27 de Marzo del 2020

Realmente puedes resolver tus dudas en este curso, creo que ahora esta gratuito, yo todo lo que sé de programación lo aprendí ahí. Te lo dejo aquí. El chico es un ingeniero aeroespacial y lo explica de forma muy facil. https://www.udemy.com/course/aprende-a-programar-en-cpp-de-forma-acelerada-y-desde-cero/?couponCode=CPLUSPLUSMARZOGRATIS