4
« en: Lunes 2 de Abril de 2007, 16:19 »
hola bueno resien me acabo de integrar a este grupo ps necesito ayuda para poder tener una buena exposion el dia miercoles quisiera que alguien me ayude a desifrar todo el codigo que acontinuacion le dare a conocer claro algunas cosa no ?
para estar seguro lo que dire ok bueno de ante mano gracia roberto.....
#include<stdio.h>
#include<graphics.h>
#include<dos.h>
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
struct nodo
{int inf;
nodo *ant; //agregar
nodo *liga;
};
nodo *p, *q, *t;
void inicializar();
void ingresar();
void mostrar();
void buscar();
void insertarant();
void eliminar();
void insertardes();
void datoeliminar();
void graficos();
main()
{
inicializar();
ingresar();
mostrar();
graficos();
buscar();
insertarant();
mostrar();
graficos();
clrscr();
buscar();
insertardes();
mostrar();
graficos();
clrscr();
datoeliminar();
eliminar();
mostrar();
graficos();
getch();
return(0);
}
void inicializar()
{
clrscr();
p=NULL;
q=NULL;
t=NULL;}
void ingresar()
{
int dato ;
while(dato!=0)
{
cout<<"INGRESE DATO: ";
cin>>dato;
if(dato!=0)
{
if(p==NULL)
{
p=new nodo;
t=p; //agregar
p->inf=dato;
p->liga=p; //cambiar NULL por p
// t=p;
}
else
{
q=new nodo;
q->inf=dato;
q->liga=p; //cambiar NULL por p
t->liga=q;
t=q;
}
}
}
}
void mostrar()
{
q=p;
cout<<endl;
cout<<"Datos Ingresados:" ;
{
do {
cout<<endl;
cout<<q->inf;
q=q->liga;
} while(q!=p);//cambiar NULL por p
}
getch();
}
void buscar()
{
clrscr();
int ref;
char x,v,f;
cout<<endl;
cout<<"_______________________\n";
cout<<" Ingrese Referencia: \n";
cout<<"_______________________\n";
cin>>ref;
x=f;
q=p;
while(x!=v&&q!=NULL)
{
if(q->inf==ref)
x=v;
else
{
t=q;
q=q->liga;
}
}
}
void insertarant()
{
int dato;
char x,v,f;
if(x==v)
{
cout<<endl;
cout<<"\nAntes de Referencia\n";
cout<<"Ingresar Dato:";
cin>>dato;
if(q==p)
{
q=new nodo;
q->inf=dato;
q->liga=p;
p=q;
}
else
{
q=new nodo;
q->inf=dato;
q->liga=t->liga;
t->liga=q;
t=q;
}
}
else
cout<<"No existe referencia";
}
void insertardes()
//NO CIRCULAR
{
int dato;
char x,v,f;
if(x==v)
{
cout<<endl;
cout<<"\nDespues de la Referencia\n";
cout<<"Ingresar Dato:";
cin>>dato;
if(q->liga==NULL)
{
t=q;
q=new nodo;
q->inf=dato;
q->liga=NULL;
t->liga=q;
}
else
{
t=q;
q=new nodo;
q->inf=dato;
q->liga=t->liga;
t->liga=q;
}
}
else
cout<<"NO EXISTE REFERENCIA\n";
}
void eliminar()
//NO CIRCULAR
{
if(p==q)
{
p=q->liga;
delete q;
}
else
{
if(q->liga==NULL)
{
t->liga=NULL;
delete q;
}
else
{
t->liga=q->liga;
delete q;
}
}
}
void datoeliminar()
{
int ref;
char x,v,f;
cout<<endl;
cout<<"\nDato a eliminar:";
cin>>ref;
x=f;
q=p;
while(x!=v&&q!=NULL)
{
if(q->inf==ref)
x=v;
else
{
t=q;
q=q->liga;
}
}
}
bueno el modo graafico no lo pongo ps esta ententible y pido esta ayuda es por quisiera estar seguro lo que quiero dar a conocer ok bueno gracia