1.
¿Cuál
es la principal diferencia entre el uso de memoria en forma estática y el uso
de memoria dinámica?
La
diferencia que existe entre estos dos tipos de procesos es que en el caso de asignación
de memoria de forma dinámica esta se reserva en tiempo de ejecución del
programa. La memoria reservada de forma dinámica suele estar alojada
en el heap o almacenamiento libre, y la memoria estática en el stack o pila
(con excepción de los objetos de duración estática, que se verán más adelante,
los cuales normalmente se colocan en una zona estática de datos). La pila
generalmente es una zona muy limitada. El heap, en cambio, en principio podría
estar limitado por la cantidad de memoria disponible durante la ejecución del
programa y el máximo de memoria que el sistema operativo permita direccionar a
un proceso. La pila puede crecer de forma dinámica, pero esto depende del
sistema operativo. En cualquier caso, lo único que se puede asumir es que muy
probablemente dispondremos de menor espacio en la pila que en el heap.
Una
desventaja de la memoria dinámica es que es más difícil de manejar. La memoria
estática tiene una duración fija, que se reserva y libera de forma automática.
En contraste, la memoria dinámica se reserva de forma explícita y continúa
existiendo hasta que sea liberada, generalmente por parte del programador.
2.
¿Con
qué otro nombre se conoce la estructura de datos pila?
Conocida también como Stack . Una pila
(stack en inglés) es una lista ordenada o estructura de datos que permite
almacenar y recuperar datos, siendo el modo de acceso a sus elementos de tipo
LIFO (del inglés Last In, First Out, «último en entrar, primero en salir»).
Esta estructura se aplica en multitud de supuestos en el área de informática
debido a su simplicidad y capacidad de dar respuesta a numerosos procesos.
Para el manejo de los datos cuenta con dos
operaciones básicas: apilar (push), que coloca un objeto en la pila, y su
operación inversa, retirar (o desapilar, pop), que retira el último elemento
apilado.
3.
¿Qué
diferencia existe entre una lista simple y una lista doblemente enlazada?
La
diferencia que existe entre estos dos tipos de lista es que, como tal en la
lista enlazada cada elemento apunta al siguiente excepto el último que no tiene
sucesor y el valor del enlace es null, mientras que en la lista doblemente
enlazada cada nodo contiene tres campos, dos para los llamados enlaces, que son
referencias al nodo siguiente y al anterior en la secuencia de nodos, y otro
más para el almacenamiento de la información (en este caso un entero). El
doble enlace de los nodos permite recorrer la lista en cualquier dirección.
Mientras que agregar o eliminar un nodo en una lista doblemente enlazada
requiere cambiar más enlaces que en estas mismas operaciones en una lista
enlazada simple, las operaciones son más simples porque no hay necesidad de
mantener guardado el nodo anterior durante el recorrido
4.
¿Cuál
es la principal característica de una lista circular?
Una
lista circular es una lista lineal en la que el último nodo a punta al primero.
Las listas circulares evitan excepciones en las operaciones que se realicen
sobre ellas. No existen casos especiales, cada nodo siempre tiene uno anterior
y uno siguiente. En algunas listas circulares se añade un nodo especial de
cabecera, de ese modo se evita la única excepción posible, la de que la lista
esté vacía. A pesar de que las listas circulares simplifiquen las operaciones
sobre ellas, también introducen algunas complicaciones. Por ejemplo, en un
proceso de búsqueda, no es tan sencillo dar por terminada la búsqueda cuando el
elemento buscado no existe. Por ese motivo se suele resaltar un nodo en
particular, que no tiene por qué ser siempre el mismo. Cualquier nodo puede
cumplir ese propósito, y puede variar durante la ejecución del programa.



No hay comentarios:
Publicar un comentario