Está en la página 1de 11

ARREGLOS Y LISTAS

ENLAZADAS

Definicin y caractersticas 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 posicin 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 relacin con el plano Cartesiano; nada que
ver con matemtica
Las dimensiones indican como estn 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 tamaos;
cada dimensin comienza con el signo [seguido
por el tamao de la dimensin y termina con el
signo]

EJEMPLO DE ARREGLO
Ejemplo 1 .
Declaracin

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


Declaracin
char m [2] [3]; // forma una tabla de dos filas y tres columnas
// cada fila es un arreglo de una dimensin
// la declaracin indica que hay dos arreglos de una dimensin
Nombre del grupo
m. indica la localizacin del grupo en la memoria
Nombre de las filas
m [0]. primera fila. indica la localizacin de la fila dentro del grupo
m [1]. segunda fila. indica la localizacin 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 dinmica
lineal en la que cada nodo es una estructura con
al menos dos campos:

Info:
Campo que contiene la informacin 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

LISTAS ENLAZADAS

Caractersticas.
Los nodos de una lista enlazada no ocupan posiciones
contiguas en memoria.
EL tamao de la estructura puede aumentar y disminuir
durante la ejecucin del programa.
Si la lista est vaca, comienzo es NULL.
La lista se considera llena cuando no existe espacio disponible
para crear una variable dinmica de tipo nodo.
No todos los lenguajes de programacin permiten la
implementacin de las listas enlazadas dinmicas.

LISTA ENLAZADA

Notacin 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 dinmica 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;
};
FUNCIN 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 implementara de la siguiente forma:

La funcin recorrido es:

void recorrido ( struct NODO *comienzo)


{
struct NODO *p;
p = comienzo;
while ( p != NULL )
{
printf (%d, p info);
p = p sig ;
}
}

La llamada sera:
struct NODO *comienzo;
...
recorrido (comienzo);