Apuntador: Un apuntador es una elemento , que almacena como contenido una dirección de memoria, de otra variable a la que apunta, dicha dirección representa el lugar donde se almacena un dato.
Declaración de Apuntadores:
Ejemplo: int *apunt; // Declaración del apuntador apunt
// Se dice que : "apunt va a apuntar a
// variables de tipo int"
Operaciones con Apuntadores:
- Asignación
int a = 15;
int *p, *q;
q = &a;
p = q; /* se asigna la dirección que contiene q a p */
cout<<p; /* imprime la dirección almacenad en p. */
- +, -, ++, --
Int p;
p = p + 1; p avanza un entero.
p = p – 2; p retrocede dos enteros.
p++; p apunta al siguiente entero.
p--; p apunta al entero anterior.
- Comaparación
int a;
int *b, *c;
if (b + n > c)
b = b +2;
Un kilobytes de memoria equivale a 1,024 bytes.
1 Byte es igual a 8 Bits
Tipo | Datos almacenados | Nº de Bits | Valores posibles (Rango) | Rango usando unsigned |
char | Caracteres | 8 | -128 a 128 | 0 a 255 |
int | enteros | 16 | -32.767 a 32.767 | 0 a 65.535 |
long | enteros largos | 32 | -2.147.483.647 a 2.147.483.647 | 0 a 4.294.967.295 |
float | Nums. reales (coma flotante) | 32 | 3,4E-38 a 3,4E38 | |
double | Nums. reales (coma flotante doble) | 64 | 1,7E-307 a 1,7E308 |
2.1. Variables estáticas
Las variables estáticas son las comúnmente creadas por el programador.
Son creadas o asignadas previa ejecución al programa.
Ej:
Char Mi_Letrica;
Int Mi_Enterito;
Float Mi_Decimalito;
Variables dinámicas
Las variables dinámicas deben su nombre al hecho de que pueden ser creadas
y destruidas durante el tiempo de ejecución de un módulo.
Para el manejo de variables dinámicas se hace indispensable la utilización de
apuntadores, así como de funciones especiales para la asignación y liberación
de la memoria correspondiente a dichas variables.
En el lenguaje C existen entre otras las funciones Malloc() y Free() para la
asignación y liberación de memoria dinámicamente respectivamente.
Igualmente se utilizan los operadores New y Delete
UNIDAD 2. ESTRUCTURAS DINÁMICAS LINEALES
_________________________________
Pilas (stack)
Una pila es un tipo de lista lineal en la cual los elementos a insertar y borrar son de la parte superior de la misma, cima o tope( Top)
"el último elemento en entrar es el primero en salir", en inglés el acrónimo LIFO(Last Input, First Out).
Ejemplos:
La pila es una estructura con numerosas analogías en la vida real: pila de
platos, una pila de monedas, una pila de camisas, una pila de gatos, etc, como
se muestra en la imagen.
4.2. Operaciones básicas con pilas:
Las pilas tienen un conjunto de operaciones muy limitado, sólo permiten las
operaciones de "push" y "pop":
Push: Añadir un elemento al final de la pila.
Pop: Leer y eliminar un elemento del final de la pila.
Capítulo 5. Colas
5.1. Conceptos básicos
Las colas son otro tipo de estructura lineal de datos, similar a las pilas,
diferenciándose de ellas en el modo de insertar/eliminar elementos.
Una cola es una estructura lineal de datos, en la que las eliminaciones se realizan al principio de la lista, frente, y las inserciones se realizan en el otro extremo, final. En las colas el elemento que entró de primero sale también de primero; por ello se conocen como listas FIFO (first-in, first-out, <<primero en entrar, primero en salir>>). Así pues, la diferencia con las pilas reside en el modo de entrada/salida de datos; en las colas las inserciones se realizan al final de la lista, no al principio. Por ello, las colas se usan para almacenar datos que necesitan ser procesados según el orden de llegada.
5.2 Aplicación de las estructuras Lineales tipo Colas
En la vida real se tiene ejemplos numerosos de colas: la cola de un autobús,
cola de un cine, caravana de coches en una calle, etc. En todas ellas el primer
elemento (pasajero, coche, etc) que llega es el primero que sale. Cola en un banco.etc
5.3. Operaciones básicas con colas
De nuevo nos encontramos ante una estructura con muy pocas operaciones
disponibles. Las colas sólo permiten añadir y leer elementos:
· Añadir: Inserta un elemento al final de la cola.
· Leer: Lee y elimina un elemento del principio de la cola.
Las operaciones en detalle que se pueden realizar con una cola son:
· Acceder al primer elemento de la cola.
· Añadir un elemento al final de la cola.
· Eliminar el primer elemento de la cola.
· Vaciar la cola.
· Verificar el estado de la cola: vacía, llena.
Ejemplo visual
6.1 Concepto de Listas
Las listas deacuerdo a su estructura se han dividido en cuatro grandes
categorías:
1.- Listas Simplemente enlazadas
2.- Listas Doblemente enlazadas
3.- Listas Circular simplemente enlazada
4.- Lista circular doblemente enlazada
Listas simplemente enlazadas
Las listas simplemente enlazadas son un conjunto de datos organizados de manera sucesiva.
Las listas generalmente se componen de nodos los cuales se interconectan de manera secuencial, un dato con otro; Cuando una lista esta vacía su valor es nulo o NULL.
Cuando el dato de una lista no contiene un valor se dice que es nulo.
6.3. Operaciones con las listas simplemente enlazadas
Las operaciones que se pueden realizar con listas lineales contiguas son:
1. Insertar, eliminar o localizar un elemento.
2. Determinar el tamaño – número de elementos – de la lista.
3. Recorrer la lista para localizar un determinado elemento.
4. Clasificar los elementos de la lista en orden ascendente o descendente.
5. Unir dos o más listas en una sola.
6. Dividir una lista en varias sublistas.
7. Copiar la lista.
8. Borrar la lista.
6.5. Listas doblemente enlazadas
Una lista doblemente enlazada es una lista lineal en la que cada nodo tiene
dos enlaces, uno al nodo siguiente, y otro al anterior.
6.5.1. Operaciones básicas con listas doblemente enlazadas:
De nuevo tenemos las mismas operaciones sobre este tipo listas:
· Añadir o insertar elementos.
· Buscar o localizar elementos.
· Borrar elementos.
· Moverse a través de la lista, siguiente y anterior.
6.6. Listas circulares
Las listas circulares son un conjunto de datos organizados de manera secuencial pero a diferencia de las listas simplemente enlazadas, el dato final no apunta a Null, antes bien lo hace al primer elemento de la lista.
0 comentarios:
Publicar un comentario