Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.