Está en la página 1de 7

http://c.conclase.net/edd/?cap=002c#2_6 http://c.conclase.net/edd/?cap=001f http://c.conclase.net/edd/?cap=001f http://casicodigo.blogspot.com/2012/10/listas-enlazadas-simples-en-c.

html ----------------------------------------------------------------------------------------------Listas Enlazadas Simples Lineales en C++

En esta ocacion les copartire este programa que hize sobre listas en enlazadas s imples que hace los siguiente: Inserta al inicio, final, en una posicion a espec ificar(antes o despues), reporta la lista, buca elemento, elimina elemento, elim ina elementos repetidos(a especificar). Aqui la imagen del menu del programa

En Ciencias de la Computacin, una lista enlazada es una de las estructuras de dat os fundamentales, y puede ser usada para implementar otras estructuras de datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos arbit rarios y una o dos referencias (punteros) al nodo anterior o posterior. El princ ipal beneficio de las listas enlazadas respecto a los array convencionales es qu e el orden de los elementos enlazados puede ser diferente al orden de almacenami ento en la memoria o el disco, permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento.

1. Insercin: a. Insertar al Inicio. b. Insertar al Final. c. Insertar un elemento justo antes de uno especificado. d. Insertar un elemento justo despus de uno especificado.2.- Bsqueda. 3.- Reporte. 4.- Eliminacin de un elemento con valor V . 5.- Eliminacin de todos los elementos con valor V . Implementacion en C++/* Name: Listas Enlazadas simples en c++ Copyright: casicodigo.blogspot.com Author: Jose Martin Cruz Otiniano Date: 17/10/12 10:15 Description: Inserta, elimina, busca, reporta */ #include <iostream> #include <stdlib.h> using namespace std; struct nodo{ int nro; // en este caso es un numero entero struct nodo *sgte; };

typedef struct nodo *Tlista; void insertarInicio(Tlista &lista, int valor) { Tlista q; q = new(struct nodo); q->nro = valor; q->sgte = lista; lista = q; } void insertarFinal(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; } } int insertarAntesDespues() { int _op, band; cout<<endl; cout<<"\t 1. Antes de la posicion cout<<"\t 2. Despues de la posicion cout<<"\n\t Opcion : "; cin>> _op; if(_op==1) band = -1; else band = 0; return band; } void insertarElemento(Tlista &lista, int valor, int pos) { Tlista q, t; int i; q = new(struct nodo); q->nro = valor; if(pos==1) {

"<<endl; "<<endl;

q->sgte = lista; lista = q; } else { int x = insertarAntesDespues(); t = lista; for(i=1; t!=NULL; i++) { if(i==pos+x) { q->sgte = t->sgte; t->sgte = q; return; } t = t->sgte; } } cout<<" } void buscarElemento(Tlista lista, int valor) { Tlista q = lista; int i = 1, band = 0; while(q!=NULL) { if(q->nro==valor) { cout<<endl<<" Encontrada en posicion "<< i <<endl; band = 1; } q = q->sgte; i++; } if(band==0) cout<<"\n\n Numero no encontrado..!"<< endl; } void reportarLista(Tlista lista) { int i = 0; while(lista != NULL) { cout <<' '<< i+1 <<") " << lista->nro << endl; lista = lista->sgte; i++; } } void eliminarElemento(Tlista &lista, int valor) { Tlista p, ant; p = lista; Error...Posicion no encontrada..!"<<endl;

if(lista!=NULL) { while(p!=NULL) { if(p->nro==valor) { if(p==lista) lista = lista->sgte; else ant->sgte = p->sgte; delete(p); return; } ant = p; p = p->sgte; } } else cout<<" Lista vacia..!"; } void eliminaRepetidos(Tlista &lista, int valor) { Tlista q, ant; q = lista; ant = lista; while(q!=NULL) { if(q->nro==valor) { if(q==lista) // primero elemento { lista = lista->sgte; delete(q); q = lista; } else { ant->sgte = q->sgte; delete(q); q = ant->sgte; } } else { ant = q; q = q->sgte; } }// fin del while cout<<"\n\n Valores eliminados..!"<<endl; } void menu1() { cout<<"\n\t\tLISTA ENLAZADA SIMPLE\n\n"; cout<<" 1. INSERTAR AL INICIO

"<<endl;

cout<<" cout<<" cout<<" cout<<" cout<<" cout<<" cout<<" }

2. 3. 4. 5. 6. 7. 8.

INSERTAR AL FINAL "<<endl; INSERTAR EN UNA POSICION "<<endl; REPORTAR LISTA "<<endl; BUSCAR ELEMENTO "<<endl; ELIMINAR ELEMENTO 'V' "<<endl; ELIMINAR ELEMENTOS CON VALOR 'V' "<<endl; SALIR "<<endl;

cout<<"\n INGRESE OPCION: ";

/* Funcion Principal ---------------------------------------------------------------------*/ int main() { Tlista lista = int op; // int _dato; // int pos; //

NULL; opcion del menu elemenento a ingresar posicion a insertar

system("color 0b"); do { menu1(); cin>> op; switch(op) { case 1: cout<< "\n NUMERO A INSERTAR: "; cin>> _dato; insertarInicio(lista, _dato); break; case 2: cout<< "\n NUMERO A INSERTAR: "; cin>> _dato; insertarFinal(lista, _dato ); break; case 3: cout<< "\n NUMERO A INSERTAR: ";cin>> _dato; cout<< " Posicion : "; cin>> pos; insertarElemento(lista, _dato, pos); break; case 4: cout << "\n\n MOSTRANDO LISTA\n\n"; reportarLista(lista); break;

case 5: cout<<"\n Valor a buscar: "; cin>> _dato; buscarElemento(lista, _dato); break; case 6: cout<<"\n Valor a eliminar: "; cin>> _dato; eliminarElemento(lista, _dato); break; case 7: cout<<"\n Valor repetido a eliminar: "; cin>> _dato; eliminaRepetidos(lista, _dato); break; } cout<<endl<<endl; system("pause"); system("cls"); }while(op!=8); system("pause"); return 0; } ----------------------------------------------------------------------------------------

Clave de Licencia de Avast! Free Antivirus Version 2014.9.0.2006 ============================== C96050416H1200A0915-JKPUY0WB C96050416H1200A0915-JKPUY0WB ============================== ------------------------------------------------------C01129571H1200A1015-AML2A829 -------------------------------------------------------

Estimado usuario de avast! Su registro de avast! Free Antivirus se complet de forma correcta. Ahora debe ins ertar su archivo de licencia en el programa.

su clave es: ------------------------------------------------------C01129571H1200A1015-AML2A829 ------------------------------------------------------Para insertar su licencia siga estas instrucciones: 1. Resalte el cdigo de licencia indicado ms arriba, despus haga clic sobre l con el botn derecho y seleccione la opcin de "Copiar" 2. Abra la ventana de avast! Free Antivirus y seleccione la pestaa de "Mantenimie nto" en la parte izquierda. Despus seleccione "Registro" 3. Haga clic en el botn de "Insertar la licencia" que hay en la parte inferior de la ventana. 4. Haga clic en el espacio vaco de Registro y seleccione "Pegar" 5. Haga clic en "OK". Su clave de licencia est ahora insertada y el programa pued e ser usado de forma gratuita durante 12 meses. Si experimenta alguna dificultad insertado la clave de licencia, haga clic aqu pa ra recibir ayuda: https://www.avast.com/es-es/FAQ/AVKB9 **Informacin importante** Tenga en cuenta que las condiciones de licencia de avast! Free limitan su uso al mbito domstico, personal y no comercial. Las versiones comerciales puede usted en contrarlas en: http://www.avast.com Gracias por elegir avast! Free Antivirus. El equipo de AVAST Software http://support.avast.com http://forum.avast.com

También podría gustarte