Crear un programa que genere una lista doblemente enlazada que comienza con los sgts menú opciones
1) Crear lista
2)insertar nodo
3)borrar nodo
4)recorrer hacia la izquierda( es decir que los números se me muevan hacia la izquierda)
5) recorrer hacia la derecha (así mismo como mencione en el literal 4 pero hacia la derecha)
6)salir
(Osea que en cada opción haga su proceso)
Ayudenme con ese programa porfavor sean serios con la respuesta...
Respuestas
Respuesta:
#include <iostream>
using namespace std;
class Nodo {
private:
int valor;
public:
Nodo* siguiente;
Nodo(int val) {
valor = val;
}
void establecer_sgte(Nodo &b) {
siguiente = &b;
}
int obtener_dato() {
return valor;
}
Nodo obtener_sgte() {
return *siguiente;
}
};
class Pila {
private :
string nombrePila;
public:
Nodo* ultimo;
Nodo* primero;
Pila() {
nombrePila = "lista";
}
void agregar_Elemento(int valor)
{
Nodo * nuevo = new Nodo(valor); // nuevo nodo
if (estaVacia()) {// la Lista está vacía
cout << "vacioooo \n";
primero = ultimo = nuevo; // la nueva lista sólo tiene un nodo
}
else // la Lista no está vacía
{
cout << "no vacio \n";
primero->establecer_sgte(*nuevo);
primero = nuevo;
}
}
void eliminarElemento() {
primero = primero->siguiente;
}
bool estaVacia() {
return primero==0;
}
void imprimir() {
Nodo * actual = ultimo;
cout << "La lista es: \n";
while (actual != 0) // obtiene los datos del elemento
{
cout << actual->obtener_dato() <<endl;
actual = actual->siguiente;
} // fin de while
cout << "\n\n";
// fin de la función
}
};
int main()
{
Pila pila;
pila.agregar_Elemento(5);
pila.agregar_Elemento(6);
pila.agregar_Elemento(7);
pila.imprimir();
}