Está en la página 1de 12

#include <iostream>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <iomanip>

#include <cstring>

using namespace std;

struct Datos{

char Equip[30];

int ParJug;

float MedGol;

double MedFalt;

};

Datos Ini={'\0', 0, 0.0, 0.0};

Datos LeerDatos( )

Datos L;

cout<<"Dame el nombre del equipo: "; cin>>L.Equip;

cout<<"Partidos Jugados: "; cin>>L.ParJug;

cout<<"Media de goles: "; cin>>L.MedGol;

cout<<"Media de faltas: "; cin>>L.MedFalt;

return(L);

class Nodo

Datos Dato;
Nodo *ant, *sig;

public:

Nodo (Datos d=Ini, Nodo *a=NULL, Nodo *s=NULL)

{ Dato=d; ant=a; sig=s; }

void ModDatos(Datos D){Dato=D;}

void ModEquip(char E[30]){strcpy(E,Dato.Equip);}

void ModParJug(int P){Dato.ParJug=P;}

void ModMedGol(float G){Dato.MedGol=G;}

void ModMedFalt(double F){Dato.MedFalt=F;}

void ModAnt(Nodo *a){ant=a;}

void ModSig(Nodo *s){sig=s;}

Datos RegDatos(){return(Dato);}

char *RegEquip(){return(Dato.Equip);}

int RegParJug(){return(Dato.ParJug);}

float RegMedGol(){return(Dato.MedGol);}

double RegMedFalt(){return(Dato.MedFalt);}

Nodo *RegAnt(){return(ant);}

Nodo *Regsig(){return(sig);}

};

class LSE

Nodo *st, *ed, *gen, *aux, *aux1;

public:

LSE( ) {st=ed=gen=NULL;}

void Insertar(Datos L);

void Imprimir();

void InsOrd(Datos L);

void Buscar(char J[30]);


void Modificar();

void Eliminar();

};

void LSE::Insertar(Datos L)

if(st==NULL){

gen=new Nodo(L);

if(gen==NULL){

cout<<"No hay memoria.";

exit(1);

st=ed=gen;

else{

Nodo *p=gen;

gen=new Nodo(L);

if(gen==NULL){

cout<<"No hay memoria.";

exit(1);

p->ModSig(gen);

ed=gen;

void LSE::InsOrd(Datos L)

{
Nodo *p, *q;

if (st = NULL){

gen=new Nodo(L);

if(gen==NULL){

cout<<"No hay memoria";

exit(1);

st=ed=gen;

else{

p=st;

if(strcmp(L.Equip,p->RegEquip() )< 0){

gen=new Nodo(L,NULL,p);

p->ModAnt(gen);

st=gen;

else{

p=ed;

if(strcmp(L.Equip,p->RegEquip()) > 0){

gen=new Nodo(L,p);

if(gen==NULL){

cout<<"No hay memoria";

exit(1);

p->ModSig(gen);

ed=gen;

else{

p=st;
while(strcmp(L.Equip,p->RegEquip()) > 0){

p=p->Regsig();

q=p->RegAnt();

gen=new Nodo(L,p);

if(gen==NULL){

cout<<"No hay memoria";

exit(1);

p->ModAnt(gen);

q->ModSig(gen);

void LSE::Buscar(char A[30])

aux=st;

while(strcmp(A,aux->RegEquip())!=0){

aux1=aux;

aux1=aux1->RegAnt();

aux=aux->Regsig();

if(aux==NULL){

cout<<"No existe el valor";

return;

cout<<"Valor encontrado:";
cout<< aux->RegEquip()<<endl;

return;

void LSE::Modificar()

Datos NvoVal;

NvoVal=LeerDatos();

aux->ModDatos(NvoVal);

cout<<"Imprimiendo modificacion: "<<endl;

cout<<aux->RegEquip()<<"\t"

<<aux->RegParJug()<<"\t"

<<aux->RegMedGol()<<"\t"

<<aux->RegMedFalt()<<endl;

void LSE::Eliminar()

if(aux==st){

st=aux;

st=aux->Regsig();

aux->ModSig(NULL);

delete(aux);

else{

if(aux==ed){

ed=aux1;

aux1->ModAnt(aux->RegAnt());

aux1->ModAnt(NULL);
delete(aux);

void LSE::Imprimir()

Nodo *i; cout<<"Imprime lista"<<endl<<endl<<endl;

for(i=st; i!=NULL; i=i->Regsig())

cout<<endl<<"\t"<<i->RegEquip()<<"\t"<<

i->RegParJug()<<"\t"<<

i->RegMedGol()<<"\t"<<

i->RegMedFalt()<<endl<<endl;

cout<<"Ultimo valor insertado"<<endl<<endl;

for(i=ed; i!=NULL; i=i->RegAnt())

cout<<i->RegEquip()<<"\t"<<

i->RegParJug()<<"\t"<<

i->RegMedGol()<<"\t"<<

i->RegMedFalt()<<endl<<endl;

int main ()

{
LSE E;

Datos S;

char valor[30];

char opc;

do

system("cls");

cout<<"LISTA DOBLEMENTE ENLAZADA\n"

<<"\n1. Insertar"

<<"\n2. Insertar Ordenado"

<<"\n3. Modificar"

<<"\n4. Eliminar"

<<"\n5. Imprimir"

<<"\n0. Salir"

<<"\nElige una opcion: ";

cin>>opc;

switch(opc)

case '1':

S=LeerDatos();

E.Insertar(S);

break;

case '2':

S=LeerDatos();

E.InsOrd(S);

E.Imprimir();

break;

case '3':
E.Imprimir();

cout<<"valor a buscar: ";

cin>>valor;

E.Buscar(valor);

E.Modificar();

break;

case '4':

E.Imprimir();

cout<<"Buscar: ";

cin>>valor;

E.Buscar(valor);

E.Eliminar();

E.Imprimir();

break;

case '5':

cout<<"Valores ingresados: "<<endl<<endl;

E.Imprimir();

break;

system("pause");

}while(opc !='0');

cout<<"Gracias por usar este software";

return 0;

También podría gustarte