Professional Documents
Culture Documents
PROFESORA: BACHILLER:
JOSEFF KURMAN
INTRODUCCIÓN ........................................................................................................ 3
BACKTRACKING ....................................................................................................... 4
Ejemplo Del Funcionamiento Del Backtracking ...................................................... 7
ESTRUCTURAS DE DATOS.................................................................................... 12
ARREGLOS ............................................................................................................ 13
Arreglos Unidimensionales ................................................................................. 13
Arreglos Multidimensionales .............................................................................. 14
REGISTRO ............................................................................................................. 15
Diferencias entre registros y arreglos .................................................................. 16
LISTAS ................................................................................................................... 16
Clasificación de las listas .................................................................................... 18
PILAS ...................................................................................................................... 18
COLAS .................................................................................................................... 21
ARBOLES .............................................................................................................. 21
Arboles Binarios ................................................................................................. 23
Arboles de Expresión .......................................................................................... 23
Árbol Binario de Búsqueda ................................................................................. 25
GRAFOS ................................................................................................................. 26
CONCLUSIÓN ........................................................................................................... 28
BIBLIOGRAFIA ........................................................................................................ 29
INTRODUCCIÓN
BACKTRACKING
Veremos un ejemplo de backtracking en caso de que todos los objetivos son falsos.
Las estructuras de datos son un medio para manejar grandes cantidades de datos
de manera eficiente para usos tales como grandes bases de dato s y servicios de
indización de internet. Por lo general, las estructuras de datos eficientes son clave para
diseñar algoritmos eficientes. Algunos métodos formales de diseño y lenguaje de
programación destacan las estructuras de datos, en lugar de los algoritmos, como el
factor clave de organización en el diseño de software.
Arreglos Unidimensionales
Un array (lista o tabla) o arreglos es una secuencia de objetos del mismo tipo.
Los objetos se llaman elementos del arreglo y se numeran consecutivamente 0, 1, 2,
3... El tipo de elementos almacenados en el arreglo puede ser cualquier tipo de dato de
incluyendo clases definidas por el usuario. Un arreglo puede contener, por ejemplo, la
edad de los alumnos de una clase, las temperaturas de cada día de un mes en una ciudad
determinada, o los alumnos de un curso. Cada ítem del arreglo se denomina elemento.
matemáticas como una secuencia tal como a0, a1, a2... Estos números localizan la
posición del elemento dentro del arreglo, proporcionando acceso directo al arreglo.
Si el nombre del arreglo es, entonces a [0] es el nombre del elemento que está
en la posición 0, a [1] es el nombre del elemento que está en la posición 1, etc. En
general, el elemento i-ésimo está en la posición i-1. Este método de numeración se
denomina indexación basada en cero. Su uso tiene el efecto de que el índice de un
elemento del arreglo es el número de “pasos” desde el elemento inicial a [0] a ese
elemento. Por ejemplo, a [3] está a 3 pasos o posiciones del elemento a [0]. De modo
que si el arreglo tiene n elementos, sus nombres son a [0], a [1],... a [n-1].
Arreglos Multidimensionales
REGISTRO
LISTAS
La representación gráfica más extendida es aquella que utiliza una caja con dos
secciones en su interior. En la primera sección se encuentra el elemento o valor del
dato y en la segunda sección el enlace, representado mediante una flecha que sale de la
caja y apunta al siguiente nodo.
De forma más concreta una lista consta de un número de nodos con dos
componentes (campos), un enlace al siguiente nodo de la lista y un valor, que puede
ser de cualquier tipo.
Clasificación de las listas
Listas simplemente enlazadas. Cada nodo (elemento) contiene un único enlace que
conecta ese nodo al nodo siguiente o nodo sucesor. La lista es eficiente en recorridos
directos (“adelante”).
Listas doblemente enlazadas. Cada nodo contiene dos enlaces, uno a su nodo
predecesor y el otro a su nodo sucesor. La lista es eficiente tanto en recorrido directo
(“adelante”) como en recorrido inverso (“atrás”).
Lista circular simplemente enlazada. Una lista simplemente enlazada en la que el
último elemento (cola) se enlaza al primer elemento (cabeza) de tal modo que la
lista puede ser recorrida de modo circular (“en anillo”).
Lista circular doblemente enlazada. Una lista doblemente enlazada en la que el
último elemento se enlaza al primer elemento y viceversa. Esta lista se puede
recorrer de modo circular (en anillo) tanto en dirección directa (“adelante”) como
inversa (“atrás”).
PILAS
Una pila (stack) es una colección ordenada de elementos a los que sólo se puede
acceder por un único lugar o extremo. Los elementos de la pila se añaden o quitan
(borran) de la misma sólo por su parte superior, la cima de la pila. Éste es el caso de
una pila de platos, una pila de libros, etc.
Una pila no es más que una estructura de datos de entradas ordenadas tales que
solo se pueden introducir y eliminar por un extremo, llamado cima.
Cuando se dice que la pila está ordenada, se quiere decir que hay un elemento
al que se puede acceder primero (el que está encima de la pila), otro elemento al que se
puede acceder en segundo lugar (justo el elemento que está debajo de la cima), un
tercero, etc. No se requiere que las entradas se puedan comparar utilizando el operador
“menor que” y pueden ser de cualquier tipo.
Cuando se quitan los libros de la pila, primero debe quitarse la novela, luego la
enciclopedia y por último el diccionario.
Una pila puede estar vacía o llena (en la representación con un arreglo, si se ha
llegado al último elemento). Si un programa intenta sacar un elemento de una pila
vacía, se producirá un error, una excepción, debido a que esa operación es imposible;
esta situación se denomina desbordamiento negativo (underflow). Por el contrario, si
un programa intenta poner un elemento en una pila llena se produce un error, una
excepción, de desbordamiento (overflow) o rebosamiento. Para evitar estas situaciones
se diseñan funciones, que comprueban si la pila está llena o vacía.
COLAS
Una cola es una estructura de datos que almacena elementos en una lista y el
acceso a los datos se hace por uno de los dos extremos de la lista. (Figura 4.1). Un
elemento se inserta en la cola (parte final) de la lista y se suprime o elimina por el frente
(parte inicial, frente) de la lista. Las aplicaciones utilizan una cola para almacenar
elementos en su orden de aparición o concurrencia.
ARBOLES
Un árbol binario es un árbol en el que ningún nodo puede tener más de dos
subárboles. En un árbol binario, cada nodo puede tener, cero, uno o dos hijos
(subárboles). Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la
derecha como hijo derecho.
Arboles de Expresión
Una aplicación muy importante de los árboles binarios son los árboles de
expresiones. Una expresión es una secuencia de tokens (componentes de léxicos que
siguen unas reglas establecidas). Un token puede ser un operando, o bien un operador.
Los árboles estudiados hasta ahora no tienen un orden definido; sin embargo,
los árboles binarios ordenados tienen sentido. Estos árboles se denominan árboles
binarios de búsqueda, debido a que se pueden buscar en ellos un término utilizando un
algoritmo de búsqueda binaria similar al empleado en arreglos.
Un árbol binario de búsqueda es aquel que dado un nodo, todos los datos del
subárbol izquierdo son menores que los datos de ese nodo, mientras que todos los datos
del subárbol derecho son mayores que sus propios datos. El árbol binario del Ejemplo
7.1 es de búsqueda.
Un arco o arista representa una relación entre dos nodos. Esta relación, al estar
formada por dos nodos, se representa por (u, v) siendo u, v el par de nodos. El grafo es
no dirigido si los arcos están formados por pares de nodos no ordenados, no apuntados;
se representa con un segmento uniendo los nodos, u ⎯ v. El grafo de la Figura 18.1 es
no dirigido. Un grafo es dirigido, también denominado digrafo, si los pares de nodos
que forman los arcos son ordenados; se representan con una flecha que indica la
dirección de la relación, u → v. El grafo de la Figura 18.2 que consta de los vértices,
V = {C, D, E, F, H}, y de los arcos A = {(C, D,), (D, F), (E, H), (H, E), (E, C)} forman
el grafo dirigido G = {V, A}.