Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <cstdlib>
- using namespace std;
- struct dato
- {
- int num;
- struct dato*sgte;
- };
- dato*crear_nodo(void);
- dato*insertar(dato*c);
- void imprimir(dato*c);
- dato*borrar(dato*c);
- int main()
- {
- dato*c=NULL;
- system("clear");//* para borrar pantalla*/
- int op;
- do
- {
- cout<<"Menu principal..."<<endl;
- cout<<"1- Ingresar datos..."<<endl;
- cout<<"2- Imprimir datos..."<<endl;
- cout<<"3- Borrar un dato.."<<endl;
- cout<<"4- SALIR"<<endl;
- cout<<"Ingrese una opción...";cin>>op;
- switch(op)
- {
- case 1:
- c=insertar(c);
- break;
- case 2:
- imprimir(c);
- break;
- case 3:
- c=borrar(c);
- break;
- }
- }while(op!=4);
- return 0;
- }
- dato*crear_nodo(void)
- {
- dato*q;
- q=(dato*)malloc(sizeof(dato));//malloc libera espacio en la memoria
- if(q==NULL)
- {
- cout<<"No se reservó espacio en memoria..";
- }
- return q;
- }
- dato*insertar(dato*c)
- {
- int n;
- dato*q=NULL;
- q=crear_nodo();
- if(q==NULL)
- {
- cout<<"No se reservo espacio en memoria...";
- }
- else
- {
- cout<<"Ingrese num= ";
- cin>>q->num;
- q->sgte=c;
- c=q;
- }
- return c;
- }
- void imprimir(dato*c)
- {
- while(c!=NULL)
- {
- cout<<"El num es: "<<c->num<<endl;
- c=c->sgte;
- };
- }
- dato*borrar(dato*b)
- {
- int nv;
- dato*bo=NULL,*e=NULL,*aux=NULL,*borrar=NULL,*copia=NULL;
- copia=b;
- int k=0;
- cout<<"Ingrese num a borrar...";cin>>nv;
- while(b!=NULL)
- {
- if(b->num==nv)
- {
- if(k==0)
- {
- bo=b;
- b=b->sgte;
- free(bo);
- e=b;
- }
- else
- {
- aux->sgte=b->sgte;
- borrar=b;
- b=b->sgte;
- free(borrar);
- }
- }
- else
- {
- aux=b;
- b=b->sgte;
- }
- k++;
- }
- if(e==NULL)
- {
- return copia;
- }
- else
- {
- return e;
- }
- return copia;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement