Professional Documents
Culture Documents
Programacin III
Las listas enlazadas son estructuras de datos dinmicas compuestas por una serie de nodos que hacen
uso de los punteros para sus direccionamientos.
Pasos:
1- Creamos un nuevo proyecto en codeblock usando c++, elegimos el tipo de aplicacin consola.
2- Agregamos una nueva clase, para ellos vamos a archivo, nuevo, y seleccionamos clase.
Universidad de Sonsonate
Programacin III
La Clase Nodo:
Contiene un dato de inters que ser nuestra variable, y tambin un puntero para apuntar a otro
nodo, con un solo puntero se puede construir una lista simplemente enlazada.
El cdigo de implementacin es el siguiente:
class Nodo
{
private:
double variable;
Nodo *Siguiente;
public:
Nodo(double valor,Nodo *Sig=NULL) {
this->variable = valor;
this->Siguiente = Sig;
}
double getVariable(){
return this->variable;
}
void setVariable(double SetVariable){
this->variable = SetVariable;
}
virtual ~Nodo() {}
4- Creacin de la clase Lista, repetimos el proceso del paso 2 y 3, pero el nombre de la clase ser
Lista.
Universidad de Sonsonate
Programacin III
La Clase Lista:
En la lista simple los nodos se organizan de modo que cada uno apunta al siguiente, y el ltimo a
NULL (nulo).
Los Mtodos y Funciones ms bsicos para el funcionamiento de estas listas se describen as:
#include "Nodo.h"
class Lista
{
private:
pNodo primero;
pNodo actual;
public:
Lista(void) {
this->primero = actual = NULL;//al momento de crear la lista se inicializara el primero y ultimo nodo como NULL
}
virtual ~Lista() {//destructor de la clase lista
pNodo aux;
while ( this->primero )//mientras exista algun nodo
{
aux = this->primero;
this->primero = this->primero->Siguiente;
delete aux;
}
}
bool ListaVacia(){
return (this->primero==NULL);//comprueba si esta vacia la lista , solo observando el primer nodo
}
void Primero(){
this->actual = this->primero;//reiniciamos el orden para que actual este en la posicion del primero
}
void Siguiente(){
if(this->actual->Siguiente!=NULL){
this->actual = this->actual->Siguiente;//nos movemos una posicion a la posicion siguiente
}
}
Universidad de Sonsonate
Programacin III
Universidad de Sonsonate
Programacin III
Universidad de Sonsonate
Programacin III
Implementacin de la Lista:
Ya que los nodos de la lista por el momento solo guardan una variable tipo double, se mostrara en un
men las diferentes operaciones con listas usando solo nmeros.
5-Codigo del archivo Main.cpp:
#include <iostream>
using namespace std;
#include "Lista.h"
void insercion();
void buscar();
void eliminar();
void mostrar();
Lista lstNumeros;
int main()
{ int opcion;
do{
system("cls");
cout << "Operaciones con listas simples\n" << endl;
cout << "1........Insertar Numero "<< endl;
cout << "2........Buscar Numero "<<endl;
cout << "3........Mostrar Todos los Numeros"<< endl;
cout << "4........Eliminar Numero "<< endl;
cout << "5........Salir"<<endl;
cout << "Digita una opcion: ";cin >> opcion;
system("cls");
switch(opcion)
{
case 1:
insercion();
break;
case 2:
buscar();
break;
case 3:
mostrar();
break;
case 4:
eliminar();
break;
case 5:
cout << "Saliendo..." << endl;
break;
default:
cout << "Opcion no valida"<<endl;
}system("pause");
}while(opcion!=5);
return 0;
} //fin del main
Universidad de Sonsonate
Programacin III
Universidad de Sonsonate
Programacin III
Resultado:
6-La compilacin del cdigo genera un men, donde se observa las opciones en la Lista.
Ejercicios:
Dado el siguiente diagrama de clase, sustituir el tipo primitivo double en la clase Nodo por el objeto
Estudiante.