Ingenieria Economina
Como insertar datos.
#include <iostream>
#include <stdlib.h>
using namespace std;
struct nodo {
int info;
struct nodo *sig;
};
void crear(struct nodo**, struct nodo **);
void poner(struct nodo **, struct nodo **, int);
int sacar(struct nodo **, struct nodo **);
int vacia(struct nodo **);
int ver(struct nodo **);
void recorrer(struct nodo **,struct nodo **);
int main(void) {
struct nodo *ent, *sal;
crear(&ent, &sal);
int dato;
cout << "\nIngrese dato: ";
cin >> dato;
while(dato!=0) {poner(&ent, &sal, dato);
cout << "\nIngrese dato: ";
cin >> dato;
}
if(vacia(&ent)==0) {
dato=sacar(&sal,&ent);
cout<<dato<<" ";
}recorrer(&ent, &sal);
getchar();
getchar();
return 0;
}
void crear(struct nodo **ent, struct nodo **sal) {
*ent=NULL;
*sal=NULL;
}
void poner(struct nodo **ent, struct nodo **sal, intdato) {
struct nodo *aux; //creo puntero auxiliar apuntando a nodo
aux=new nodo; //pido memoria para un nodo
if (aux==NULL) {
cout << "Memoriainsuficiente..." << endl;
exit(1);
}
aux->info=dato;
aux->sig=NULL;
if(*ent==NULL)
*sal=aux;
else
(*ent)->sig=aux;
*ent=aux;
}
int sacar(struct nodo **sal, structnodo **ent) {
struct nodo *aux;
int dato;
aux=*sal; // apunto aux al nodo que quiero sacar
dato=(*sal)->info;
*sal=(*sal)->sig; // cambio *sal al siguiente nodoif(*sal==NULL)
*ent=NULL;
delete aux;
return dato;
}
int vacia(struct nodo **ent) {
if(*ent==NULL)
return 1;
else
return 0;
}
int ver(struct nodo **sal) {
return(*sal)->info;
}
void recorrer(struct nodo **ent, struct nodo **sal) {
int dato, marca;
if (vacia(ent)==1)
cout<<"Cola vacia...";
else
dato=sacar(sal,ent); // asigno nodo a...
Regístrate para leer el documento completo.