Este documento presenta la implementación de una lista simple en C++ para almacenar diferentes tipos de vehículos (carros, motos, furgonetas, camiones). Incluye métodos para agregar nodos, eliminar elementos por dato o posición, imprimir la lista, verificar si la lista está vacía, y obtener el número de nodos. La clase Lista usa punteros para enlazar los nodos y almacenar la información de los vehículos.
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Lista vehículos
1. Instituto universitario politécnico
“Santiago Mariño”
Extensión Porlamar
Escuela de ingeniería de sistemas
Estructura de datos
Ejercicio de Listas simples
Bachiller:
PlacencioJohana
C.I:19.909.628
Prof. Maria Langone
Porlamar, Febrero
2. #include "Lista.h"
#include "Carro.h"
#include "Furgoneta.h"
#include "Camion.h"
#include "Moto.h"
using namespace std;
Lista::Lista()
{
//aqui es cabeza = 0 y tama = o
cabeza = 0;
tama = 0;
}
bool Lista::existeElemento(string dato)
{
Nodo *actual = cabeza;
while(actual!=0)
if(actual->verDato()->verPlaca()==dato)
return true;
else
actual = actual->verSiguiente();
return false;
}
int tipos()
{
int tipo;
cout<<"Seleccione el tipo de vehiculo"<<endl;
cout<<"1 Carro"<<endl;
cout<<"2 Moto"<<endl;
cout<<"3 Furgoneta"<<endl;
cout<<"4 Camion"<<endl;
cin>>tipo;
return tipo;
3. }
void Lista::agregarNodo()
{
string placa,color,marca,modelo;
cout<<"Ingresar placa del auto"<<endl;
cin>> placa;
cout<<"Ingresar color del auto"<<endl;
cin>> color;
cout<<"Ingresar marca del auto"<<endl;
cin>> marca;
cout<<"Ingresar modelo del auto"<<endl;
cin>> modelo;
Vehiculos * vehiculo;
switch(tipos())
{
case 1: vehiculo = new Carro(placa,color,marca,modelo);break;
case 2: vehiculo = new Moto(placa,color,marca,modelo);break;
case 3: vehiculo = new
Furgoneta(placa,color,marca,modelo);break;
case 4: vehiculo = new Camion(placa,color,marca,modelo);break;
default:
cout<<"Tipo de vehiculo desconocido.nVehiculo no
agregado!"<<endl;
return;
}
agregarNodo(new Nodo(vehiculo));
}
Lista& Lista::operator<<(Nodo* dato)
{
if(cabeza==0) cabeza = dato;
Nodo *actual = cabeza;
for(int i=1; i<tama;i++)
actual = actual->verSiguiente();