90 likes | 265 Views
Tema Nº4. Pilas. Y. Colas. Diferencia entre pilas y colas. Viendo ambas definiciones, podemos observar que ambas son secuencia de datos los cuales son colocados y luego retirados.
E N D
Pilas Y Colas
Diferencia entre pilas y colas • Viendo ambas definiciones, podemos observar que ambas son secuencia de datos los cuales son colocados y luego retirados. • Para diferenciar las pilas de las colas fácilmente nos imaginaremos dos cosas:Una pila de librosUna cola de la compra.Cuando retiras un libro de una pila de libros, se hace del último que dejaste en la pila, por eso se dice que son LIFO (Last Input, First Output, o en español, El último que entra es el primero que sale).En la cola de la compra, a diferencia, siempre se atiende al que llegó primero, y por eso son FIFO (First Input, First Output, o en español, el primero que entra es el primero que sale)
Recursividad • La recursividad es posible gracias a la existencia de pilas. Las soluciones recursivas suelen ser bastante cortas pero cubren mucho más espacio en la memoria del ordenador, este es el principal inconveniente de las soluciones recursivas. Esto se debe a que si un programa recursivo tiene variables dentro del mismo programa éstas se crearán nuevas cada vez que se ejecute. Por este motivo en los procedimientos y funciones recursivos evitaremos pasar como parámetros arrays, matrices, etc., ya que estaremos haciendo un uso innecesario de la memoria. Si lo que queremos es una variable global entonces deberá estar en el programa principal. Por último aclarar la utilización de los parámetros de entrada (in) y de salida (out): • IN Se comportan como constantes, no se pueden cambiar. Los valores introducidos en la pila no se modifican. • OUT Son parámetros variables. Los valores se copian en la pila al elemento anterior.
Diferencia entre árbol y árbol binario • Un árbol es una estructura de datos que imita la forma de un árbol, ya que son un conjunto de nodos conectados entre si. Un nodo es la unidad sobre la que se construye el árbol y puede tener cero o más nodos hijos conectados a él. Se dice que un nodo a es padre de un nodo b si existe un enlace desde a hasta b (en ese caso, también decimos que b es hijo de a). Sólo puede haber un único nodo sin padres, que llamaremos raíz. Un nodo que no tiene hijos se conoce como hoja. Los demás nodos (tienen padre y uno o varios hijos) se les conoce como rama. • Un árbol binario es un tipo de árbol, obviamente, también es un conjunto de nodos conectados pero con la limitación de que solo puede tener 2 nodos hijos como máximo.
Recorrido de árboles • Una sucesión de nodos del árbol, de forma que entre cada dos nodos consecutivos de la sucesión haya una relación de parentesco, decimos que es un recorrido árbol. Existen dos recorridos típicos para listar los nodos de un árbol: primero en profundidad y primero en anchura. En el primer caso, se listan los nodos expandiendo el hijo actual de cada nodo hasta llegar a una hoja, donde se vuelve al nodo anterior probando por el siguiente hijo y así sucesivamente. En el segundo, por su parte, antes de listar los nodos de nivel n + 1 (a distancia n + 1 aristas de la raíz), se deben haber listado todos los de nivel n.
Árbol de Busquedas • Un árbol binario de búsqueda (ABB) es un árbol binario definido de la siguiente forma: • Todo árbol vacío es un árbol binario de búsqueda. Un árbol binario no vacío, de raíz R, es un árbol binario de búsqueda si: • En caso de tener subárbol izquierdo, la raíz R debe ser mayor que el valor máximo almacenado en el subárbol izquierdo, y que el subárbol izquierdo sea un árbol de búsqueda. • En caso de tener subárbol derecho, la raíz R debe ser menor que el valor mínimo almacenado en el subárbol derecho, y que el subárbol derecho sea un árbol de búsqueda.