Está en la página 1de 3

#include <iostream>

#include <stdlib.h>
using namespace std;
struct nodo{
int info;
nodo *sig;

nodo(){
sig=NULL;
}
nodo(int info){
this->info=info;
sig=NULL;
}
};
class listasimple{
private:
nodo *raiz;
public:
listasimple(){
raiz=NULL;
}
void crear(){
raiz=NULL;
}
void adicion(int dato){
nodo *nuevo=new nodo(dato);
if(raiz==NULL)
raiz=nuevo;
else{
nuevo->sig=raiz;
raiz=nuevo;
}
}
void ver(){
nodo *pt=raiz;
while(pt!=NULL)
{
cout<<pt->info<<"-->";
pt=pt->sig;
}
cout<<"null\n";
}
void buscar(int dato){
int cont=0;
int pos=0;
bool flag=false;
nodo *pt=raiz;
while(pt!=NULL)
{
cont ++;
if(pt->info==dato){
pt=pt->sig;
flag=true;
pos=cont;
}
else{
pt=pt->sig;
}
}
if(flag){
cout<<"Esta en la posicion: "<<pos<<endl;
}else{
cout<<"No encontrado..."<<endl;
}
}
void eliminar(int el){
bool flag=false;
nodo *pt=raiz;
while(pt!=NULL){
if(pt->info==el){
pt->info=pt->sig->info;
pt->sig=pt->sig->sig;
flag=true;
}
else{
pt=pt->sig;
}
}
free(pt);
if(flag){
cout<<"Dato eliminado..."<<endl;
}
else{
cout<<"No encontrado..."<<endl;
}
}
void promedioNumerosPares() {
int cantidad = 0;
nodo *pt = raiz;
while (pt != NULL) {
if (pt->info % 2==0) {
cantidad++;
}
pt = pt->sig;
}
if (cantidad > 0) {
int promedio = cantidad;
cout << "Promedio de números pares: " << promedio << endl;
} else {
cout << "No hay números pares en la lista." << endl;
}
}

};
int main()
{
listasimple li;
li.crear();
li.adicion(5);
li.adicion(11);
li.adicion(5);
li.adicion(20);
li.adicion(5);
li.adicion(1);
li.adicion(10);
li.ver();
li.promedioNumerosPares();
li.buscar(10);
li.eliminar(20);
li.ver();

return 0;
}

También podría gustarte