Вы находитесь на странице: 1из 4

LISTAS ENLAZADAS SIMPLES

1. INTRODUCCI�N
Las listas enlazadas son una secuencia de nodos que se encuentran enlazados uno con
el siguiente mediante
un enlace. Cada elemento (nodo) de una lista enlazada debe tener dos campos: un
campo (info) que contiene
el valor de ese elemento y un campo (enlace) que indica la posici�n del siguiente
elemento.
Aunque se pueden crear muchos tipos de listas enlazadas, las tres variantes m�s
populares son la lista de
enlace simple, la lista doblemente enlazada y la lista enlazada circular.
2. LISTA DE ENLACE SIMPLE.
Una lista de enlace simple es una lista enlazada de nodos, donde cada nodo tiene un
�nico campo de enlace.
Una variable de referencia contiene una referencia al primer nodo, cada nodo
(excepto el �ltimo) enlaza con
el nodo siguiente, y el enlace del �ltimo nodo contiene null para indicar el final
de la lista. En java para
realizar listas enlazadas se utilizan clases autoreferenciadas.
Una clase autoreferenciada es una clase con al menos un campo cuyo tipo de
referencia es el nombre de la
clase.
Las operaciones b�sicas sobre una lista simple son:
- Insertar nodo
- Eliminar nodo
- Buscar nodo
- Mostrar lista
- Eliminar lista
3. NODO
class Nodo {
int info;
Nodo enlace;
Nodo(int a){ //Constructor que recibe como
par�metro un n�mero
info=a;
enlace=null;
}
}
info enlace
Nodo
int info
Nodo enlace
INGENIERIA DE SISTEMAS 2 ESTRUCTURAS DE DATOS (Listas simples)
4. LISTA ENLAZADA SIMPLE
NULL
Para probar la lista necesitamos una clase de prueba donde tenga la funci�n main,
como se muestra a
continuaci�n
class Prueba {
public static void main(String[] args) {
Lista A=new Lista();
A.InsertarNodo(2);
A.InsertarNodo(3);
A.InsertarNodo(4);
A.mostrarLista();
}
}
Lista
Nodo cab
insertarNodo
mostrarLista
��..
4 7 8 0
cab
JAVA
class Lista {
Nodo cab; //declaraci�n del nodo
void InsertarNodo(int n) //inserci�n al principio
{
if(cab==null) //entra la primera vez
{
cab=new Nodo(n); //crea el nodo cab con el dato n
}
else
{
Nodo temp=new Nodo(n); //nodo temporal
temp.enlace=cab;
cab=temp;
}
}
void mostrarLista()
{
Nodo aux=cab;
while(aux!=null) //recorre hasta llegar a null
{
System.out.print(aux.info);
aux=aux.enlace; //aux avanza al siguiente nodo
}
}
}
INGENIERIA DE SISTEMAS 3 ESTRUCTURAS DE DATOS (Listas simples)
En el IDE Eclipse deber�a crear 3 clases como se muestra a continuaci�n
EJERCICIO
Programa que permite insertar N datos en una lista enlazada y posteriormente
realiza las siguientes
acciones:
- Mostrar los datos insertados
- Mostrar la cantidad de nodos en la lista
- El Promedio de la Lista
- El �ltimo nodo de la lista
class Nodo {
int info;
Nodo enlace;
Nodo(int a){ //Constructor que recibe como par�metro un n�mero
info=a;
enlace=null;
}
}
public class Lista {
Nodo cab;
void mostrar(){ //muestra los datos de la lista
Nodo aux=cab;
while(aux!=null){
System.out.print(aux.info+" ");
aux=aux.enlace;
}
}
void insertar(int a){ //inserta un nodo en la lista
if(cab==null){
cab=new Nodo(a);
}
else{
Nodo temp=new Nodo(a);
Nodo aux=cab;
while(aux.enlace!=null)
aux=aux.enlace;
aux.enlace=temp;
}
}
int cantidad(){ //retorna la cantidad de nodos en la lista
int con=0;
Nodo aux=cab;
while(aux!=null){
con++;
aux=aux.enlace;
INGENIERIA DE SISTEMAS 4 ESTRUCTURAS DE DATOS (Listas simples)
}
return con;
}
float promedio(){ //retorna el promedio de los datos de la lista
int con=0;
int sum=0;
float prom;
Nodo aux=cab;
while(aux!=null){
con++;
sum=sum+aux.info;
aux=aux.enlace;
}
prom=(sum)/con;
return prom;
}
void ultimo(){ //muestra el ultimo dato de la lista
Nodo aux=cab;
while(aux.enlace!=null){
aux=aux.enlace;
}
System.out.println(aux.info);
}
}
import java.util.*;
public class Prueba {
public static void main(String[] args) {
Scanner en=new Scanner(System.in);
Lista l=new Lista();
System.out.print("inserte cantidad de datos: ");
int cant=en.nextInt();
int num;
for(int i=0;i<cant;i++)
{
System.out.print("inserte un dato: ");
l.insertar(en.nextInt());
}
System.out.println("los datos de la lista son:");
l.mostrar();
System.out.println();
System.out.println("la cantidad de nodos en la lista es:");
System.out.println(l.cantidad());
System.out.println("El promedio de la lista es:");
System.out.println(l.promedio());
System.out.println("El ultimo nodo de la lista es:");
l.ultimo();
}
}

Вам также может понравиться