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 *sig;

public:

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

{ Dato=d; 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 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 *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,p);

if(gen==NULL){

cout<<"No hay memoria";

exit(1);

st=gen;

else{

p=ed;

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

gen=new Nodo(L);

if(gen==NULL){

cout<<"No hay memoria";

exit(1);

p->ModSig(gen);

ed=gen;

else{
p=st;

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

q=p;

p=p->Regsig();

gen=new Nodo(L,p);

if(gen==NULL){

cout<<"No hay memoria";

exit(1);

q->ModSig(gen);

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

aux=st;

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

aux1=aux;

aux=aux->Regsig();

if(aux==NULL){

cout<<"No existe el valor";

return;

cout<<"Valor encontrado:";

cout<< aux->RegEquip();
return;

void LSE::Modificar()

Datos NvoVal;

NvoVal=LeerDatos();

aux->ModDatos(NvoVal);

cout<<"Imprimiendo modificacion:";

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

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

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

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

void LSE::Eliminar()

if(aux==st){

st=aux->Regsig();

aux->ModSig(NULL);

delete(aux);

else{

if(aux==ed){

ed=aux;

aux1->ModSig(aux->Regsig());

aux->ModSig(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;

int main ()

LSE E;

Datos S;

char valor[30];

int opc;

do

system("cls");

cout<<"LISTA SIMPLEMENTE 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':

E.InsOrd(S);

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');

return 0;

También podría gustarte