You are on page 1of 7

Universidad Privada de Pucallpa 2011

Laboratorio N 12: Listas Simples


/*implemente una lista enlazada con el metodo nodo cabecera. Los elementos recientemente ingresados,insertaran al inicio de la lista.*/ #include<iostream.h> #include <conio.h> #include<string.h> struct nodo { int nro; struct nodo*sgte; }; void main() { struct nodo nodocabeza; struct nodo*q; int i,n; nodocabeza.sgte=NULL; clrscr(); cout<<"numero de elementos:";cin>>n; cout<<endl; for(i=0;i<n;i++) { cout<<"elemento["<<i+1<<"]:"; q=new(struct nodo); cin>>q->nro; q->sgte=nodocabeza.sgte; nodocabeza.sgte=q; } cout<<endl; cout<<"listado:"<<endl; q=nodocabeza.sgte; while(q==NULL) { cout<<q->nro<<endl; q=q->sgte; } getche(); }

/*implemente una lista enlazada con el mtodo de puntero al primer elemento.Los elementos ingresados se insertarn al principio*/

Ing. Ronald Harold Ulloa G.

Pgina 1

Universidad Privada de Pucallpa 2011


#include<iostream.h> #include<conio.h> struct nodo { int nro; struct nodo*sgte; }; void main() { struct nodo*lista; struct nodo*q; int i,n; lista=NULL; clrscr(); cout<<"ingrese numero de elementos:";cin>>n; cout<<endl; for(i=0;i<n;i++) { cout<<"elemento["<<i+1<<"]:"; q=new(struct nodo);cin>>q->nro; q->sgte=lista; lista=q; } cout<<endl; cout<<endl<<"listado:"<<endl; q=lista; while(q==NULL) { cout<<q->nro<<endl; q=q->sgte; } getche(); }

Ing. Ronald Harold Ulloa G.

Pgina 2

Universidad Privada de Pucallpa 2011


/*Implemente una lista enlazada con el mtodo del puntero al primer elemento. Haga que los elementos ingresados se inserten al final de la lista.*/ #include<iostream.h> #include<conio.h> struct nodo { int nro; struct nodo*sgte; }; void main() { struct nodo*lista,*nuevo,*anterior; int n,i; clrscr(); cout<<"numero de elementos:";cin>>n; lista=NULL; for(i=0;i<n;i++) { cout<<"elemento["<<i+1<<"]:"; nuevo=new(struct nodo); cin>>nuevo->nro; nuevo->sgte=NULL; if(lista==NULL) { lista=nuevo; anterior=nuevo; } else { anterior->sgte=nuevo; anterior=nuevo; } } cout<<endl<<"listado:"<<endl; nuevo=lista; while(nuevo==NULL) { cout<<nuevo->nro<<endl; nuevo=nuevo->sgte; } getch(); }

/*Escriba un men para insertar un elemento en una lista enlazada con el mtodo de puntero al primer elemento,en cada uno de los siguientes casos:

Ing. Ronald Harold Ulloa G.

Pgina 3

Universidad Privada de Pucallpa 2011


a)insertar al inicio, b)insertar al final, c)insertar en una determinada posicion de la lista.*/ #include<iostream.h> #include<conio.h> struct nodo{int nro; struct nodo*sgte; }; typedef struct nodo*TLista; void insertaAlInicio(TLista&,int); void insertaAlFinal(TLista&,int); void insertaEnPosicion(TLista&,int,int); void imprimir(TLista); void main() {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.inserta en una posicion"<<endl; cout<<"4.listado"<<endl; cout<<"5.salir"<<endl; cout<<"ingrese opcion:"; cin>>opc; switch(opc) {case 1:cout<<"valor a insertar al inicio:"; cin>>valor; insertaAlInicio(lista,valor); break; case 2:cout<<"valor a insertar al final:"; cin>>valor; insertaAlFinal(lista,valor); break; case 3:cout<<"valor a insertar:"; cin>>valor; cout<<"posicion:";cin>>pos; insertaEnPosicion(lista,valor,pos); break; case 4:cout<<endl<<"listado"<<endl; imprimir(lista); break; } } while(opc==5); } void imprimir(TLista lista) {while(lista==NULL) {cout<<lista->nro<<endl; lista=lista->sgte; } cout<<endl; } void insertaAlInicio(TLista&lista,int valor) { Tlista q;

Ing. Ronald Harold Ulloa G.

Pgina 4

Universidad Privada de Pucallpa 2011


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; if(lista==NULL)lista=q; else{t=lista; while(t->sgte==NULL)t=t->sgte; t->sgte=q; } } void insertaEnPosicion(TLista&lista,int valor,int pos) { TLista q,t; int i; q=new(struct nodo); q->nro=valor; if(pos==1){q->sgte=lista;lista=q;} else{t=lista; for(i=1;t==NULL;i++) {if(i==pos-1){q->sgte=t->sgte; t->sgte=q; return;} t=t->sgte; } } cout<<"error....posicion equivocada"<<endl; getche(); }

LABORATORIO DE LISTAS DINMICAS SIMPLES


#include<iostream.h> #include<conio.h> struct nodo{int cantidad; int codigo; float preciocompra; char descripcion;

Ing. Ronald Harold Ulloa G.

Pgina 5

Universidad Privada de Pucallpa 2011


struct nodo *sgte; }; typedef struct nodo *TLista; void crear(TLista&); void inserta1(TLista&,int,int,float,char); void burbuja(TLista); void imprimir(TLista); void main(void) {TLista lista; int n,i,cantidad,codigo; float preciocompra; char descripcion; clrscr(); crear(lista); cout<<"numeros de elementos a generar :"; cin>>n; cout<<endl; int k=0; for(i=0;i<n;i++) {cout<<"x["<<k++<<"]"<<"\n"; cout<<"CANTIDAD ";cin>>cantidad; cout<<"CODIGO ";cin>>codigo; cout<<"PRECIOCOMPRA ";cin>>preciocompra; cout<<"DESCRIPCION ";cin>>descripcion; inserta1(lista,cantidad,codigo,preciocompra,descripcion); cout<<"\n"; } cout<<"\n\t ORDEN POR INVERSION \n\t"; cout<<"\n"; burbuja(lista); imprimir(lista); getch(); } void crear(TLista &lista) { lista=NULL; } void inserta1(TLista &lista,int cantidad,int codigo,float preciocompra,char descripcion) {TLista q,t; q=new(struct nodo); q->cantidad=cantidad; q->codigo=codigo; q->preciocompra=preciocompra; q->descripcion=descripcion; q->sgte=NULL; if(lista==NULL) { lista=q; } else{ t=lista; while(t->sgte!=NULL)

Ing. Ronald Harold Ulloa G.

Pgina 6

Universidad Privada de Pucallpa 2011


t=t->sgte; } t->sgte=q; } } {

void imprimir(TLista lista) {int i=0; while(lista!=NULL) {cout<<endl; cout<<"x["<<i++<<"]"<<"\n"; cout<<"CANTIDAD "<<lista->cantidad; cout<<" CODIGO "<<lista->codigo; cout<<" PRECIO COMPRA "<<lista->preciocompra; cout<<" DESCRIPCION "<<lista->descripcion; cout<<" INVERSION "<<lista->cantidad*lista->preciocompra; lista=lista->sgte; cout<<"\n"; } cout<<endl; } void burbuja(TLista lista) {TLista actual,siguiente,marca; int t; marca=NULL; while(marca!=lista->sgte) {actual=lista; siguiente=actual->sgte; while(siguiente!=marca) {if(actual->cantidad > siguiente->cantidad) {t=actual->cantidad; actual->cantidad=siguiente->cantidad; siguiente->cantidad=t; } actual=actual->sgte; siguiente=siguiente->sgte; } marca=actual; } }

Ing. Ronald Harold Ulloa G.

Pgina 7

You might also like