Professional Documents
Culture Documents
#include<iostream> using namespace std ; struct nodo { int nro ; struct nodo *sgte; };
typedef struct nodo *TLista; void insertaAlInicio( TLista &,int); void insertaAlFinal(TLista &,int); void EliminaAlInicio(TLista &); void EliminaAlFinal(TLista &); void imprimir (TLista); int main ( void ) { TLista lista=NULL; int opc,valor,pos; do { cout<<"** Menu **"<<endl; cout<<" 1 Inserta al inicio "<<endl; cout<<" 2 Inserta al final "<<endl; cout<<" 3 Eleminar al inicio "<<endl; cout<<" 4 Eliminar al final "<<endl; cout<<" 5 Listado "<<endl; cout<<" Ingrese opcion " ; cin>>opc;
switch(opc) { case 1: cout<<endl;cout<<"Valor a insertar al inicio " ; cin>>valor; insertaAlInicio(lista,valor); break; case 2: cout<<endl; cout<<"Valor a insertar al final " ; cin>>valor; insertaAlFinal(lista,valor); break ;
case 3: cout<<endl<<"....Elimina al inicio"<<endl; EliminaAlInicio(lista); break; case 4: cout<<endl<<"....Elimina al final"<<endl; EliminaAlFinal(lista); break; case 5: cout<<endl<<"Listado"<<endl; imprimir(lista); break; }// fin del switch } while(opc !=6); }
void insertaAlInicio(TLista &lista,int valor ) { TLista q ; q=new(struct nodo); q->nro =valor ; q->sgte=lista; lista=q; } void insertaAlFinal(TLista &lista,int valor) { TLista t,q=new(struct nodo); q->nro=valor ; q->sgte=NULL;
struct nodo *p; if(lista !=NULL) { p=lista ; lista=lista->sgte; delete(p); } } void EliminaAlFinal(TLista &lista) { TLista p, ant; if(lista ==NULL) return ; p=lista; if(lista->sgte==NULL) lista =lista->sgte; else { while(p->sgte!=NULL) { ant =p; p=p->sgte; } ant->sgte=NULL; } delete(p); }
void insertaAlFinalC(TListaC &,int ); // funcion de insertar void imprimir(TListaC); int main (void) { TListaC listaC=NULL; // declaramos a lista que inicie sin nada // declaracion de variables // funcion de mostrar
int i,n,valor ;
cout<<"Numero de elementos : " ; cin>>n ; for(i=0;i<n;i++) // un for hasta que sea menor o igual que 10
cout<<"Valor :"; cin>>valor ; insertaAlFinalC(listaC, valor); // llama a la funcion insertar } imprimir(listaC); return 0; } // llama a la funcion mostrar
void insertaAlFinalC(TListaC &listaC, int valor) { TListaC t,q=new(struct nodo); q->nro=valor; // declaramos a " t" , y a q que hara un nuevo nodo
while(t->sgte!=listaC) t=t->sgte; // mientras t en campo sgte sea diferente de lista t->sgte=q; } q->sgte=listaC; } // q en el campo sgte = a lista // hacer que t = a t en el campo siguiente
void imprimir(TListaC listaC) { TListaC q=listaC , t=NULL; while(t!=listaC) { cout<<q->nro<<endl; q=q->sgte; t=q; } cout<<endl; } // mostrar q en el campo numero // q es igual a q en el campo siguiente // t toma en valor del ultimo numero // declarmos a q como lista y a t en vacio // mientras t sea diferente de lista
4.#include<iostream> using namespace std ; struct nodo { int nro; struct nodo *sgte; }; typedef nodo *ptrPila; void imprimir(ptrPila); void eliminarPila(ptrPila & ); void push (ptrPila &,int); int pop(ptrPila &); int main (void) { ptrPila p=NULL; int opc , n ; do { cout<<endl<<" *** Menu ***" <<endl; cout<<" 1 .- Apilar "<<endl; cout<<" 2 .- Desapilar "<<endl; cout<<" 3 .- Ver Pila "<<endl; cout<<" 4.- Destruir Pila "<<endl; cout<<" 5 .- Salir "<<endl<<endl; cout<<"Ingrese opcion : " ; cin>>opc ; switch(opc) { case 1: cout<<endl;cout<<"Apilar valor " ; cin>>n; push(p,n);
break; case 2: if(p!=NULL) cout<<endl; cout<<"Valor eleminado : " ; n=pop(p); cout<<n<<endl; break ; case 3: cout<<endl; cout<<"Contenido de Pila : "<<endl; imprimir(p); break; case 4: cout<<endl; eliminarPila(p); cout<<"Pila destruida " <<endl; break; }// fin de awitch
} while(opc!=5); } void push(ptrPila &p,int n) { ptrPila q=new (struct nodo); q->nro=n; q->sgte=p; p=q; }
void eliminarPila(ptrPila&p) {