ARREGLOS Y LISTAS ENLAZADAS
Definición y características de cada uno de los
temas.
ARREGLOS EN C++









No es una variable; es un grupo de variables conocidas como
elementos
Cada elemento ocupa una posición dentro del grupo
Todos los elementos son del mismo tipo
El nombre del arreglo indica donde se localiza el grupo en la memoria
de la computadora
Los arreglos se clasifican de acuerdo a las dimensiones que tengan
Las dimensiones no tienen relación con el plano Cartesiano; nada que
ver con matemática
Las dimensiones indican como están organizados los elementos dentro
del grupo
Los arreglos de dos dimensiones pueden visualizarse como tablas
Los valores que se guarden en el arreglo se almacenan en los
elementos ya que los elementos son las variables
PARA CREAR ARREGLOS EN C++
Hay que indicar:
 1. el tipo de los elementos (ejemplo, int, char,
double, bool o un tipo definido por el
programador)
 2. el nombre del arreglo
 3. la cantidad de dimensiones y sus tamaños;
cada dimensión comienza con el signo [seguido
por el tamaño de la dimensión y termina con el
signo]

EJEMPLO DE ARREGLO
Ejemplo 1 .
 Declaración

int a [3]; // forma una secuencia de tres elementos
 Nombre del grupo a
 Nombre de los elementos
 a [0]. primer elemento
 a [1]. segundo elemento
 a [2]. tercer elemento

EJEMPLO DE ARREGLOS

















Ejemplo #2. Arreglo de dos dimensiones
Declaración
char m [2] [3]; // forma una tabla de dos filas y tres columnas
// cada fila es un arreglo de una dimensión
// la declaración indica que hay dos arreglos de una dimensión
Nombre del grupo
m. indica la localización del grupo en la memoria
Nombre de las filas
m [0]. primera fila. indica la localización de la fila dentro del grupo
m [1]. segunda fila. indica la localización de la fila dentro del grupo
Nombre de los elementos
m [0] [0]. primer elemento
m [0] [1]. segundo elemento
m [0] [2]. tercer elemento
m [1] [0]. cuarto elemento
m [1] [1]. quinto elemento
m [1] [2]. sexto elemento
LISTA ENLAZADA
Lista enlazada.
 Una lista enlazada es una estructura dinámica
lineal en la que cada nodo es una estructura con
al menos dos campos:



Info:
Campo que contiene la información de
la lista enlazada (este campo puede ser simple o
compuesto.
Siguiente:
Campo que contiene un puntero
o enlace al siguiente elemento de la
listas.
LISTA ENLAZADA



Nodo:
Existe un puntero o enlace especial que guarda la
dirección del primer nodo y que llamaremos
comienzo (com). El campo enlace del último nodo
será Nulo o NULL.
Una lista enlazada puede representarse de la
forma:
LISTAS ENLAZADAS
Características.
•Los nodos de una lista enlazada no ocupan posiciones
contiguas en memoria.
•EL tamaño de la estructura puede aumentar y disminuir durante
la ejecución del programa.
•Si la lista está vacía, comienzo es NULL.
•La lista se considera llena cuando no existe espacio disponible
para crear una variable dinámica de tipo nodo.
•No todos los lenguajes de programación permiten la
implementación de las listas enlazadas dinámicas.
LISTA ENLAZADA

Notación empleada
Comienzo: puntero o enlace al primer nodo de la lista
enlazada.
Si p es un puntero o enlace a un nodo cualquiera de la lista:

Info (p):
Campo de datos del nodo apuntado por p.

Sig (p):
Campo de enlace del nodo apuntado por p.



RECORRIDO
Se denomina recorrido de una lista enlazada dinámica al
procedimiento mediante el cual accedemos a todos los nodos
de la lista desde el primero al último.
EJEMPLO DE LISTA ENLAZADA
struct NODO
{
int info;
struct NODO *sig;
};
FUNCIÓN recorrido( comienzo): nada
Entorno:
comienzo :
puntero o enlace al primer nodo de la lista.
p:
puntero auxiliar para recorrer la lista enlazada.
Proceso:
Inicio.
p  comienzo
EJEMPLO LISTA ENLAZADA
mientras p <> null
visitar nodo (info(p))
p  sig(p)
fin mientras
fin
En lenguaje C se implementaría de la siguiente forma:
La función recorrido es:
void recorrido ( struct NODO *comienzo)
{
struct NODO *p;
p = comienzo;
while ( p != NULL )
{
printf (“%d”, p  info);
p = p  sig ;
}
}
La llamada sería:
struct NODO *comienzo;
...
recorrido (comienzo);
Descargar

Arreglos y listas enlazadas