SlideShare a Scribd company logo
1 of 33
Clasificación de las
estructuras de datos
Fuente: Facomsys
¿Qué son las estructuras de datos?
Son colecciones de elementos de datos relacionados. Los objetos
arreglo son estructuras de datos que consisten en elementos de datos
relacionados, del mismo tipo. Los arreglos facilitan el procesamiento de
grupos de valores relacionados. Los arreglos conservan la misma
longitud una vez creados
Estáticas:
• Arreglos
¿Qué es un arreglo?
Un arreglo es una estructura de datos utilizada para almacenar datos
del mismo tipo. Los arreglos almacenan sus elementos en ubicaciones
de memoria contiguas. En Java, los arreglos son objetos.
Un arreglo es un grupo de variables (llamadas elementos o componentes)
que contienen valores del mismo tipo.
Los arreglos son objetos, por lo que se consideran como tipos de referencia.
Como veremos pronto, lo que consideramos por lo general como un arreglo
es en realidad una referencia a un objeto arreglo en memoria.
Los elementos de un arreglo pueden ser tipos primitivos o de referencia.
Para hacer referencia a un elemento específico en un arreglo, debemos
especificar el nombre de la referencia al arreglo y el número de la posición
del elemento dentro del mismo. El número de la posición del elemento se
conoce formalmente como el índice o subíndice del elemento
Simplifiquemos
• Un arreglo es un conjunto de elementos asociados a un identificador
con un tipo de dato, donde cada uno de los elementos puede ser
direccionado a través de un elemento llamado índice
Representación de arreglos logicos
• En la figura a continuacion se muestra una representación lógica de
un arreglo de enteros, llamado c. Este arreglo contiene 12 elementos.
Un programa puede hacer referencia a cualquiera de estos elementos
mediante una expresión de acceso a un arreglo que contiene el
nombre del arreglo, seguido por el índice del elemento específico
encerrado entre corchetes ([]). El primer elemento en cualquier
arreglo tiene el índice cero, y algunas veces se le denomina elemento
cero.
• Por lo tanto, los elementos del arreglo c son c[0], c[1], c[2], y así en lo
sucesivo. El mayor índice en el arreglo c es 11: 1 menos que 12, el
número de elementos en el arreglo.
Índices y elementos
• Un índice debe ser un entero no negativo. Un programa puede utilizar
una expresión como índice.
Por ejemplo, si suponemos que la variable a es 5 y que b es 6, entonces
la instrucción: c[a + b] += 2;
suma 2 al elemento c[11] del arreglo. El nombre de un arreglo con
subíndice es una expresión de acceso al arreglo, la cual puede utilizarse
en el lado izquierdo de una asignación, para colocar un nuevo valor en
un elemento del arreglo.
C[8]=34;
Psst, por aquí: Un índice debe ser un valor int, o un valor de un tipo que pueda convertirse a int;
por ejemplo, byte, short o char, pero no long. De lo contrario, ocurre un error de compilación
¿Y que podemos hacer con el contenido de
los arreglos?
Vamos a examinar con más detalle el arreglo c de la figura vista antes.
El nombre del arreglo es c.
Cada objeto arreglo conoce su propia longitud y mantiene esta
información en una variable de instancia length. La expresión c.length
devuelve la longitud del arreglo c. Aun cuando la variable de instancia
length de un arreglo es public, no puede cambiarse, ya que es una
variable final.
La manera en que se hace referencia a los 12 elementos de este arreglo
es: c[0], c[1], c[2], …, c[11].
El valor de c[0] es -45, el valor de c[1] es 6, el de c[2] es 0, el de c[7] es
62 y el de c[11] es 78.
Para calcular la suma de los valores contenidos en los primeros tres
elementos del arreglo c y almacenar el resultado en la variable suma,
escribiríamos lo siguiente:
suma = c[0] + c[1] + c[2];
Para dividir el valor de c[6] entre 2 y asignar el resultado a la variable x,
escribiríamos lo siguiente:
x = c[6] / 2;
Y así con otras operaciones matemáticas
¿Cómo se declara un arreglo?
Los objetos arreglo ocupan espacio en memoria. Al igual que los demás
objetos, los arreglos se crean con la palabra clave new.
Para crear un objeto arreglo, debemos especificar el tipo de cada elemento y
el número de elementos que se requieren para el arreglo, como parte de una
expresión para crear un arreglo que utiliza la palabra clave new.
Dicha expresión devuelve una referencia que puede almacenarse en una
variable tipo arreglo. La siguiente declaración y expresión de creación de
arreglos crea un objeto arreglo, que contiene 12 elementos int y almacena
la referencia del arreglo en la variable c:
int[] c = new int[12];
Psst por aquí: Esta expresión puede usarse para crear el arreglo que
se mostro con anterioridad en la figura
Existe otra forma de declarar una arreglo
int[] c;
c = new int[12];
Al crear un arreglo, cada uno de sus elementos recibe un valor
predeterminado (cero para los elementos numéricos de tipos
primitivos, false para los elementos boolean y null para las
referencias).
En la declaración, los corchetes que van después del tipo indican que c
es una variable que hará referencia a un arreglo (es decir, la variable
almacenará una referencia a un arreglo).
En la instrucción de asignación, la variable arreglo c recibe la referencia
a un nuevo objeto arreglo de 12 elementos int.
Un programa puede crear varios arreglos en una sola declaración. La
siguiente declaración reserva 100 elementos para b y 27 para x:
String[] b = new String[100], x = new String[27];
Psst, por aquí; En la declaración de un arreglo, si se especifica el
número de elementos en los corchetes de la declaración (por
ejemplo, int[12] c;), se produce un error de sintaxis.
Cuando el tipo del arreglo y los corchetes se combinan al principio de la
declaración, todos los identificadores en ésta son variables tipo arreglo. En
este caso, las variables b y x hacen referencia a arreglos String. Por cuestión
de legibilidad, es preferible declarar sólo una variable en cada declaración. La
declaración anterior es equivalente a:
String[] b = new String[100];
String[] x = new String[27];
Cuando sólo se declara una variable en cada declaración, los corchetes se
pueden colocar después del tipo o del nombre de la variable del arreglo,
como en:
String b[] = new String[100];
String x[] = new String[27];
Psst, por aquí: Un programa puede declarar arreglos de cualquier tipo
cada elemento de un arreglo int es un valor int, y cada elemento de un
arreglo String es una referencia a un objeto String.
Clasificación de los arreglos:
• Arreglo Unidimensional: Nos referimos a un vector de datos
• Arreglo Bidimensional: Nos referimos a una estructura de doble
entrada, es decir que tiene filas y columnas
• Arreglo Tridimensional: Extendemos una dimensión mas, lo que se
traduce en tener filas, columnas y profundad
• Arreglo Multidimensional: Nos referimos a que cada dimensión,
puede tener un tamaño diferente a las demás dimensiones
Arreglo como estructura estática
• La particularidad que un arreglo como una estructura estática, viene desde
el momento en que el arreglo se define en tiempo de diseño, nosotros
podemos establecer e tamaño del arreglo, de una manera inicial, cuando
nosotros usamos esta estructura, el tamaño de la estructura esta definido
por el tamaño inicial de la estructura, lo que implica que la estructura no
puede crecer, ni disminuir en tiempo de ejecución, por eso se les llama
estáticas, esto tiene algunas complicaciones y efectos durante la ejecución
lo que significa que cuando la estructura llega a su limite de capacidad, nos
tenemos que conformar con ese limite definido, no podemos ajustar el
tamaño de la estructura durante la ejecución de la operación, para ello
debemos detener la aplicación y modificar el tamaño de la ejecución y
posteriormente volver a cargar los datos.
Dinamicas
• Lineales
• Pilas
• Colas
• Listas
• No Lineales
• Arboles
• Grafos
Pilas
• Una pila es una estructura de datos que principalmente tiene dos
operaciones: Apilar y desapilar
• Es un tipo de estructura que sigue un patrón LIFO (Last in, First Out),
es decir el ultimo en entrar es el primero en salir
Colas
• Una cola es una estructura de datos que almacena elementos en una lista y permite acceder a los
datos por uno de los dos extremos de la lista. Un elemento se inserta en la cola (parte final) de la
lista y se suprime o elimina por la frente (parte inicial, cabeza) de la lista.
• Los elementos se eliminan (se quitan) de la cola en el mismo orden en que se almacenan y, por
consiguiente, una cola es una estructura de tipo FIFO (first-in-first-out, primero en entrar, Primero
en salir o bien primero en llegar/primero en ser servido). o El servicio de atención a clientes es un
ejemplo típico de cola o el cajero de un banco
Listas
• Una lista es una secuencia de elementos dispuesto en un cierto orden, en la que cada elemento tiene
como mucho un predecesor y un sucesor. El número de elementos de la lista no suele estar fijado, ni
suele estar limitado por anticipado.
• Representaremos la estructura de datos de forma gráfica con cajas y flechas. Las cajas son los
elementos y las flechas simbolizan el orden de los elementos.
• La estructura de datos deberá permitirnos determinar cuál es el primer elemento y el
último de la estructura, cuál es su predecesor y su sucesor (si existen de cualquier
elemento dado). Cada uno de los elementos de información suele denominarse nodo.
• La lista también puede representarse de forma simbólica escribiendo sus elementos
separados por comas y encerrados entre corchetes. Por ejemplo:
• ["rojo","verde","azul","amarillo"]
• El uso de listas en Java es una forma útil de almacenar y manipular
grandes volúmenes de datos, tal como haríamos en una matriz o
arreglo, pero con una serie de ventajas que hacen de este tipo de
variables las preferidas para el procesamiento de grandes cantidades
de información.
• Las listas en Java son variables que permiten almacenar grandes
cantidades de datos. Son similares a los Array o a las Matrices.
Arboles
• Un árbol es una estructura jerárquica de datos que imita la forma de
un árbol, un conjunto de nodos conectados. Un nodo es la unidad
sobre la que se construye el árbol y puede tener ceros o mas 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. Solo puede haber un único nodo sin
padres, que llamaremos raíz. Un nodo que no tiene hijos se conoce
como hoja y a los demás nodos se les conoce como ramas.
• Formalmente, un árbol se puede definir de manera recursiva, se utiliza la
recursión para definir un árbol porque es una característica inherente a los
mismos, como:
• 1. Un solo nodo es, por si mismo, un árbol. Ese nodo es también la raíz de
dicho árbol.
• 2. Se supone que n es un nodo y que A1 , A2 ,..., Ak son arboles con raíces
n1 , n2 ,…, nk respectivamente. Se puede construir un nuevo árbol
haciendo que n se constituya en el padre de los nodos n1 , n2 ,…, nk . En
dicho árbol, n es la raíz y A1 , A2 ,..., Ak son los subarboles (o arboles hijos)
de la raíz. Los nodos n1 , n2 ,… ,nk reciben el nombre de hijos del nodo n y
el nodo n recibe el nombre de padre de dichos nodo
• Como ejemplo se puede considerar el índice de un libro.
• T1 (Tema 1)
• 1.1.-(Pregunta 1 del Tema 1)
• 1.2.-(Pregunta 2 del Tema 1)
• T2 (Tema 2)
• 2.1.-(Pregunta 1 del Tema 2)
• 2.1.1.-(Pregunta 1 de la pregunta 1 del Tema 2)
• 2.1.2.-( Pregunta 2 de la pregunta 1 del Tema 2)
• 2.2.-(Pregunta 2 del Tema 2)
• 2.3.-(Pregunta 3 del Tema 2)
• T3 (Tema 3)
Árbol del índice:
Grafos
• Desde un punto de vista intuitivo un grafo es un
conjunto de nodos unidos por un conjunto de
arcos. Un ejemplo de grafo que podemos
encontrar en la vida real es el de un plano de
trenes. El plano de trenes está compuesto por
varias estaciones (nodos) y los recorridos entre las
estaciones (arcos) constituyen las líneas del
trazado.
• Un grafo G=(V,E) consiste en un conjunto V de nodos (vértices) y un conjunto E
de aristas (arcos). Cada arista es un par (v,w), siendo v y w un par de nodos
pertenecientes al conjunto V de nodos. Podemos distinguir entre grafos dirigidos
y no dirigidos. En un grafo dirigido los pares (v,w) están ordenados,
traduciéndose la arista en una flecha que va desde el nodo v al nodo w.
• En el caso de un grafo no dirigido, los nodos están unidos mediante líneas sin
indicación de dirección.
• Por último se puede definir una función que asocie a cada arco un
coste: coste(arco)
Terminología de grafos
• Hablaremos de dos vértices adyacentes cuando estén unidos por un
arco. El número de vértices adyacentes de un nodo constituye
el grado del mismo. En el ejemplo los vértices adyacentes al nodo C
son el a, d y e , siendo éste por tanto un nodo de grado tres por tener
tres vértices adyacentes.
• Un camino entre dos vértices, es una secuencia de vértices tal que
dos vértices consecutivos son adyacentes. En el siguiente ejemplo el
camino entre el vértice a y el vértice e será la secuencia de
vértices abecde.
• Cuando este camino no tiene vértices repetidos se dice que
es simple. Salvo en el caso de que el primer y último vértice del
camino sean el mismo, en cuyo caso hablaremos de un ciclo
• Cuando este camino no tiene vértices repetidos se dice que
es simple. Salvo en el caso de que el primer y último vértice del
camino sean el mismo, en cuyo caso hablaremos de un ciclo
• La siguiente clasificación, aunque no es completa, presenta las
principales características que nos podemos encontrar en los grafos:
• Grafo conexo: Cuando entre cada dos nodos del grafo hay un camino.
• Bosque: Es un grafo sin ciclos.
• Arbol libre: es un bosque conexo.
• La representación más extendida de los grafos es mediante lo que se
llaman Matrices de adyacencia.
• Como medida ante la estática los arreglos, tenemos estructuras
dinámicas, esto significa que el tamaño de estructura puede ir
creciendo o disminuyendo en tiempo de ejecución, lo que significa
que el tamaño de la estructura es variante, y por lo tanto siempre
ataremos utilizando la cantidad de memoria necesario para manejar o
manipular los datos que la aplicación requiere, dentro de esta
calificación tenemos las lineales y no lineales, cada una de estas
estructuras tiene una lógica o algoritmo de funcionamiento partículas

More Related Content

What's hot

NÚCLEO E IMAGEN DE UNA TRANSFORMACIÓN LINEAL
NÚCLEO E IMAGEN DE UNA TRANSFORMACIÓN LINEALNÚCLEO E IMAGEN DE UNA TRANSFORMACIÓN LINEAL
NÚCLEO E IMAGEN DE UNA TRANSFORMACIÓN LINEAL
VERITO
 
Numeros Pseudo-aleatorios y variables aleatorias
Numeros Pseudo-aleatorios y variables aleatoriasNumeros Pseudo-aleatorios y variables aleatorias
Numeros Pseudo-aleatorios y variables aleatorias
Alberto Carranza Garcia
 
Programacion Convexa Presentacion Definitivo
Programacion Convexa Presentacion DefinitivoProgramacion Convexa Presentacion Definitivo
Programacion Convexa Presentacion Definitivo
wadar3
 
2.metodo iterativo
2.metodo iterativo2.metodo iterativo
2.metodo iterativo
rjvillon
 
Transformaciones lineales
Transformaciones linealesTransformaciones lineales
Transformaciones lineales
algebra
 
Funciòn potencia, exponencial y logaritmica
Funciòn potencia, exponencial y logaritmicaFunciòn potencia, exponencial y logaritmica
Funciòn potencia, exponencial y logaritmica
mpalmahernandez
 

What's hot (20)

Derivada y su interpretación geométrica
Derivada y su interpretación geométricaDerivada y su interpretación geométrica
Derivada y su interpretación geométrica
 
Espacios vectoriales con producto interno
Espacios vectoriales con producto internoEspacios vectoriales con producto interno
Espacios vectoriales con producto interno
 
Ejercicios de qbasic
Ejercicios de qbasicEjercicios de qbasic
Ejercicios de qbasic
 
NÚCLEO E IMAGEN DE UNA TRANSFORMACIÓN LINEAL
NÚCLEO E IMAGEN DE UNA TRANSFORMACIÓN LINEALNÚCLEO E IMAGEN DE UNA TRANSFORMACIÓN LINEAL
NÚCLEO E IMAGEN DE UNA TRANSFORMACIÓN LINEAL
 
Numeros Pseudo-aleatorios y variables aleatorias
Numeros Pseudo-aleatorios y variables aleatoriasNumeros Pseudo-aleatorios y variables aleatorias
Numeros Pseudo-aleatorios y variables aleatorias
 
Autómatas Finitos
Autómatas FinitosAutómatas Finitos
Autómatas Finitos
 
Resultante de fuerzas coplanares-Componentes rectangulares
Resultante de fuerzas coplanares-Componentes rectangularesResultante de fuerzas coplanares-Componentes rectangulares
Resultante de fuerzas coplanares-Componentes rectangulares
 
Programacion Convexa Presentacion Definitivo
Programacion Convexa Presentacion DefinitivoProgramacion Convexa Presentacion Definitivo
Programacion Convexa Presentacion Definitivo
 
Programacion lineal entera
Programacion lineal enteraProgramacion lineal entera
Programacion lineal entera
 
2.metodo iterativo
2.metodo iterativo2.metodo iterativo
2.metodo iterativo
 
Transformaciones lineales
Transformaciones linealesTransformaciones lineales
Transformaciones lineales
 
serie de potencias 04-07-23.pptx
serie de potencias 04-07-23.pptxserie de potencias 04-07-23.pptx
serie de potencias 04-07-23.pptx
 
Green teorema
Green teoremaGreen teorema
Green teorema
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles) ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles)
 
Funciòn potencia, exponencial y logaritmica
Funciòn potencia, exponencial y logaritmicaFunciòn potencia, exponencial y logaritmica
Funciòn potencia, exponencial y logaritmica
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
6.limites de funciones. continuidad
6.limites de funciones. continuidad6.limites de funciones. continuidad
6.limites de funciones. continuidad
 
Serie de fourier. Funciones periodicas, funciones pares e impares.
Serie de fourier. Funciones periodicas, funciones pares e impares.Serie de fourier. Funciones periodicas, funciones pares e impares.
Serie de fourier. Funciones periodicas, funciones pares e impares.
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 

Similar to Clasificación de las estructuras de datos.pptx

Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02
kevinwm17
 
Arreglos
ArreglosArreglos
Arreglos
lichic
 
Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_
Diosmary Marrón Dellán
 

Similar to Clasificación de las estructuras de datos.pptx (20)

Arreglos en c++2020
Arreglos en c++2020Arreglos en c++2020
Arreglos en c++2020
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02
 
Ambiente
 Ambiente Ambiente
Ambiente
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambiente de programacin en pascal
Ambiente de programacin en pascalAmbiente de programacin en pascal
Ambiente de programacin en pascal
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Daniel lugoalgoritmica
Daniel lugoalgoritmicaDaniel lugoalgoritmica
Daniel lugoalgoritmica
 
5ta Evaluación de Progamación.docx
5ta Evaluación de Progamación.docx5ta Evaluación de Progamación.docx
5ta Evaluación de Progamación.docx
 
Clase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y ArreglosClase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y Arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 
12 Arreglos
12 Arreglos12 Arreglos
12 Arreglos
 
Arreglos programacion
Arreglos programacionArreglos programacion
Arreglos programacion
 
Estructuras fundamentales
Estructuras fundamentalesEstructuras fundamentales
Estructuras fundamentales
 
vectores-unidimensionales
vectores-unidimensionalesvectores-unidimensionales
vectores-unidimensionales
 
Presentación Arreglos
Presentación ArreglosPresentación Arreglos
Presentación Arreglos
 
Estructuras de Datos Elementos y Arreglos.ppt
Estructuras de Datos Elementos y Arreglos.pptEstructuras de Datos Elementos y Arreglos.ppt
Estructuras de Datos Elementos y Arreglos.ppt
 
Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_
 
Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_
 

More from Ram Vazquez

More from Ram Vazquez (20)

Comparación, pruebas y saltos en ensamblador
Comparación, pruebas y saltos en ensambladorComparación, pruebas y saltos en ensamblador
Comparación, pruebas y saltos en ensamblador
 
Ciclos y Captura basica de cadenas y caracteres.pptx
Ciclos y Captura basica de cadenas y caracteres.pptxCiclos y Captura basica de cadenas y caracteres.pptx
Ciclos y Captura basica de cadenas y caracteres.pptx
 
Ensamblador y ligador conceptos basicos.pptx
Ensamblador y ligador conceptos basicos.pptxEnsamblador y ligador conceptos basicos.pptx
Ensamblador y ligador conceptos basicos.pptx
 
3.1.1 Representación en memoria.pptx
3.1.1 Representación en memoria.pptx3.1.1 Representación en memoria.pptx
3.1.1 Representación en memoria.pptx
 
2.3 Ejemplo de casos recursivos.pptx
2.3 Ejemplo de casos recursivos.pptx2.3 Ejemplo de casos recursivos.pptx
2.3 Ejemplo de casos recursivos.pptx
 
2.2 Procedimientos recursivos.pptx
2.2 Procedimientos recursivos.pptx2.2 Procedimientos recursivos.pptx
2.2 Procedimientos recursivos.pptx
 
2.1 Recursividad.pptx
2.1 Recursividad.pptx2.1 Recursividad.pptx
2.1 Recursividad.pptx
 
Tipos de datos abstractos (TDA)
Tipos de datos abstractos (TDA)Tipos de datos abstractos (TDA)
Tipos de datos abstractos (TDA)
 
4.2 Redes Neuronales.pptx
4.2 Redes Neuronales.pptx4.2 Redes Neuronales.pptx
4.2 Redes Neuronales.pptx
 
Unidad 4.1.pptx
Unidad 4.1.pptxUnidad 4.1.pptx
Unidad 4.1.pptx
 
3.3 - 2 Búsqueda Sistemática.pptx
3.3 - 2 Búsqueda Sistemática.pptx3.3 - 2 Búsqueda Sistemática.pptx
3.3 - 2 Búsqueda Sistemática.pptx
 
3.5 Semántica de las reglas de producción.pptx
3.5 Semántica de las reglas de producción.pptx3.5 Semántica de las reglas de producción.pptx
3.5 Semántica de las reglas de producción.pptx
 
2.3 Recoleccion y tratamiento de datos.pptx
2.3 Recoleccion y tratamiento de datos.pptx2.3 Recoleccion y tratamiento de datos.pptx
2.3 Recoleccion y tratamiento de datos.pptx
 
3.4 Sintaxis de las reglas de producción.pptx
3.4 Sintaxis de las reglas de producción.pptx3.4 Sintaxis de las reglas de producción.pptx
3.4 Sintaxis de las reglas de producción.pptx
 
3.3 Reglas de producción.pptx
3.3 Reglas de producción.pptx3.3 Reglas de producción.pptx
3.3 Reglas de producción.pptx
 
3.2 Metodos de interferencia.pptx
3.2 Metodos de interferencia.pptx3.2 Metodos de interferencia.pptx
3.2 Metodos de interferencia.pptx
 
3.1 Representación de conocimiento mediante reglas.pptx
3.1 Representación de conocimiento mediante reglas.pptx3.1 Representación de conocimiento mediante reglas.pptx
3.1 Representación de conocimiento mediante reglas.pptx
 
2.9 Teorema de bayes.pptx
2.9 Teorema de bayes.pptx2.9 Teorema de bayes.pptx
2.9 Teorema de bayes.pptx
 
2.8 Razonamiento probabilístico..pptx
2.8 Razonamiento probabilístico..pptx2.8 Razonamiento probabilístico..pptx
2.8 Razonamiento probabilístico..pptx
 
2.7 Conocimiento no-monótono y otras lógicas..pptx
2.7 Conocimiento no-monótono y otras lógicas..pptx2.7 Conocimiento no-monótono y otras lógicas..pptx
2.7 Conocimiento no-monótono y otras lógicas..pptx
 

Recently uploaded

Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdfEdiciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Demetrio Ccesa Rayme
 
Profecia 2300 dias explicada, Daniel 8:14
Profecia 2300 dias explicada, Daniel 8:14Profecia 2300 dias explicada, Daniel 8:14
Profecia 2300 dias explicada, Daniel 8:14
KevinBuenrostro4
 
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdfPasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
NELLYKATTY
 

Recently uploaded (20)

Power Point : Motivados por la esperanza
Power Point : Motivados por la esperanzaPower Point : Motivados por la esperanza
Power Point : Motivados por la esperanza
 
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechaproyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
 
flujo de materia y energía ecosistemas.
flujo de materia y  energía ecosistemas.flujo de materia y  energía ecosistemas.
flujo de materia y energía ecosistemas.
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )
 
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdfEdiciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D  Ccesa007.pdf
Ediciones Previas Proyecto de Innovacion Pedagogica ORIGAMI 3D Ccesa007.pdf
 
Hidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptx
Hidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptxHidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptx
Hidrocarburos cíclicos, EJERCICIOS, TEORIA Y MÁS.pptx
 
A propósito de la globalización y la financiarización del mundo
A propósito de la globalización y la financiarización del mundoA propósito de la globalización y la financiarización del mundo
A propósito de la globalización y la financiarización del mundo
 
Análisis de los factores internos en una Organización
Análisis de los factores internos en una OrganizaciónAnálisis de los factores internos en una Organización
Análisis de los factores internos en una Organización
 
a propósito del estado su relevancia y definiciones
a propósito del estado su relevancia y definicionesa propósito del estado su relevancia y definiciones
a propósito del estado su relevancia y definiciones
 
Profecia 2300 dias explicada, Daniel 8:14
Profecia 2300 dias explicada, Daniel 8:14Profecia 2300 dias explicada, Daniel 8:14
Profecia 2300 dias explicada, Daniel 8:14
 
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIALA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
 
Estudios Sociales libro 8vo grado Básico
Estudios Sociales libro 8vo grado BásicoEstudios Sociales libro 8vo grado Básico
Estudios Sociales libro 8vo grado Básico
 
2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx2. Entornos Virtuales de Aprendizaje.pptx
2. Entornos Virtuales de Aprendizaje.pptx
 
cuadernillo_cuentos_de_los_valores_elprofe20 (1).docx
cuadernillo_cuentos_de_los_valores_elprofe20 (1).docxcuadernillo_cuentos_de_los_valores_elprofe20 (1).docx
cuadernillo_cuentos_de_los_valores_elprofe20 (1).docx
 
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptxComunidades Virtuales de Aprendizaje Caracteristicas.pptx
Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
 
4ª SESION la misión santificadora del Espíritu Santo en la vida de la Iglesi...
4ª SESION  la misión santificadora del Espíritu Santo en la vida de la Iglesi...4ª SESION  la misión santificadora del Espíritu Santo en la vida de la Iglesi...
4ª SESION la misión santificadora del Espíritu Santo en la vida de la Iglesi...
 
Lecciones 07 Esc. Sabática. Motivados por la esperanza
Lecciones 07 Esc. Sabática. Motivados por la esperanzaLecciones 07 Esc. Sabática. Motivados por la esperanza
Lecciones 07 Esc. Sabática. Motivados por la esperanza
 
Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)
 
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdfPasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
 
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
 

Clasificación de las estructuras de datos.pptx

  • 3. ¿Qué son las estructuras de datos? Son colecciones de elementos de datos relacionados. Los objetos arreglo son estructuras de datos que consisten en elementos de datos relacionados, del mismo tipo. Los arreglos facilitan el procesamiento de grupos de valores relacionados. Los arreglos conservan la misma longitud una vez creados
  • 4. Estáticas: • Arreglos ¿Qué es un arreglo? Un arreglo es una estructura de datos utilizada para almacenar datos del mismo tipo. Los arreglos almacenan sus elementos en ubicaciones de memoria contiguas. En Java, los arreglos son objetos.
  • 5. Un arreglo es un grupo de variables (llamadas elementos o componentes) que contienen valores del mismo tipo. Los arreglos son objetos, por lo que se consideran como tipos de referencia. Como veremos pronto, lo que consideramos por lo general como un arreglo es en realidad una referencia a un objeto arreglo en memoria. Los elementos de un arreglo pueden ser tipos primitivos o de referencia. Para hacer referencia a un elemento específico en un arreglo, debemos especificar el nombre de la referencia al arreglo y el número de la posición del elemento dentro del mismo. El número de la posición del elemento se conoce formalmente como el índice o subíndice del elemento
  • 6. Simplifiquemos • Un arreglo es un conjunto de elementos asociados a un identificador con un tipo de dato, donde cada uno de los elementos puede ser direccionado a través de un elemento llamado índice
  • 7. Representación de arreglos logicos • En la figura a continuacion se muestra una representación lógica de un arreglo de enteros, llamado c. Este arreglo contiene 12 elementos. Un programa puede hacer referencia a cualquiera de estos elementos mediante una expresión de acceso a un arreglo que contiene el nombre del arreglo, seguido por el índice del elemento específico encerrado entre corchetes ([]). El primer elemento en cualquier arreglo tiene el índice cero, y algunas veces se le denomina elemento cero. • Por lo tanto, los elementos del arreglo c son c[0], c[1], c[2], y así en lo sucesivo. El mayor índice en el arreglo c es 11: 1 menos que 12, el número de elementos en el arreglo.
  • 8.
  • 9. Índices y elementos • Un índice debe ser un entero no negativo. Un programa puede utilizar una expresión como índice. Por ejemplo, si suponemos que la variable a es 5 y que b es 6, entonces la instrucción: c[a + b] += 2; suma 2 al elemento c[11] del arreglo. El nombre de un arreglo con subíndice es una expresión de acceso al arreglo, la cual puede utilizarse en el lado izquierdo de una asignación, para colocar un nuevo valor en un elemento del arreglo. C[8]=34; Psst, por aquí: Un índice debe ser un valor int, o un valor de un tipo que pueda convertirse a int; por ejemplo, byte, short o char, pero no long. De lo contrario, ocurre un error de compilación
  • 10. ¿Y que podemos hacer con el contenido de los arreglos? Vamos a examinar con más detalle el arreglo c de la figura vista antes. El nombre del arreglo es c. Cada objeto arreglo conoce su propia longitud y mantiene esta información en una variable de instancia length. La expresión c.length devuelve la longitud del arreglo c. Aun cuando la variable de instancia length de un arreglo es public, no puede cambiarse, ya que es una variable final. La manera en que se hace referencia a los 12 elementos de este arreglo es: c[0], c[1], c[2], …, c[11].
  • 11. El valor de c[0] es -45, el valor de c[1] es 6, el de c[2] es 0, el de c[7] es 62 y el de c[11] es 78. Para calcular la suma de los valores contenidos en los primeros tres elementos del arreglo c y almacenar el resultado en la variable suma, escribiríamos lo siguiente: suma = c[0] + c[1] + c[2]; Para dividir el valor de c[6] entre 2 y asignar el resultado a la variable x, escribiríamos lo siguiente: x = c[6] / 2; Y así con otras operaciones matemáticas
  • 12. ¿Cómo se declara un arreglo? Los objetos arreglo ocupan espacio en memoria. Al igual que los demás objetos, los arreglos se crean con la palabra clave new. Para crear un objeto arreglo, debemos especificar el tipo de cada elemento y el número de elementos que se requieren para el arreglo, como parte de una expresión para crear un arreglo que utiliza la palabra clave new. Dicha expresión devuelve una referencia que puede almacenarse en una variable tipo arreglo. La siguiente declaración y expresión de creación de arreglos crea un objeto arreglo, que contiene 12 elementos int y almacena la referencia del arreglo en la variable c: int[] c = new int[12]; Psst por aquí: Esta expresión puede usarse para crear el arreglo que se mostro con anterioridad en la figura
  • 13. Existe otra forma de declarar una arreglo int[] c; c = new int[12]; Al crear un arreglo, cada uno de sus elementos recibe un valor predeterminado (cero para los elementos numéricos de tipos primitivos, false para los elementos boolean y null para las referencias).
  • 14. En la declaración, los corchetes que van después del tipo indican que c es una variable que hará referencia a un arreglo (es decir, la variable almacenará una referencia a un arreglo). En la instrucción de asignación, la variable arreglo c recibe la referencia a un nuevo objeto arreglo de 12 elementos int. Un programa puede crear varios arreglos en una sola declaración. La siguiente declaración reserva 100 elementos para b y 27 para x: String[] b = new String[100], x = new String[27]; Psst, por aquí; En la declaración de un arreglo, si se especifica el número de elementos en los corchetes de la declaración (por ejemplo, int[12] c;), se produce un error de sintaxis.
  • 15. Cuando el tipo del arreglo y los corchetes se combinan al principio de la declaración, todos los identificadores en ésta son variables tipo arreglo. En este caso, las variables b y x hacen referencia a arreglos String. Por cuestión de legibilidad, es preferible declarar sólo una variable en cada declaración. La declaración anterior es equivalente a: String[] b = new String[100]; String[] x = new String[27]; Cuando sólo se declara una variable en cada declaración, los corchetes se pueden colocar después del tipo o del nombre de la variable del arreglo, como en: String b[] = new String[100]; String x[] = new String[27]; Psst, por aquí: Un programa puede declarar arreglos de cualquier tipo cada elemento de un arreglo int es un valor int, y cada elemento de un arreglo String es una referencia a un objeto String.
  • 16. Clasificación de los arreglos: • Arreglo Unidimensional: Nos referimos a un vector de datos • Arreglo Bidimensional: Nos referimos a una estructura de doble entrada, es decir que tiene filas y columnas • Arreglo Tridimensional: Extendemos una dimensión mas, lo que se traduce en tener filas, columnas y profundad • Arreglo Multidimensional: Nos referimos a que cada dimensión, puede tener un tamaño diferente a las demás dimensiones
  • 17. Arreglo como estructura estática • La particularidad que un arreglo como una estructura estática, viene desde el momento en que el arreglo se define en tiempo de diseño, nosotros podemos establecer e tamaño del arreglo, de una manera inicial, cuando nosotros usamos esta estructura, el tamaño de la estructura esta definido por el tamaño inicial de la estructura, lo que implica que la estructura no puede crecer, ni disminuir en tiempo de ejecución, por eso se les llama estáticas, esto tiene algunas complicaciones y efectos durante la ejecución lo que significa que cuando la estructura llega a su limite de capacidad, nos tenemos que conformar con ese limite definido, no podemos ajustar el tamaño de la estructura durante la ejecución de la operación, para ello debemos detener la aplicación y modificar el tamaño de la ejecución y posteriormente volver a cargar los datos.
  • 18. Dinamicas • Lineales • Pilas • Colas • Listas • No Lineales • Arboles • Grafos
  • 19. Pilas • Una pila es una estructura de datos que principalmente tiene dos operaciones: Apilar y desapilar • Es un tipo de estructura que sigue un patrón LIFO (Last in, First Out), es decir el ultimo en entrar es el primero en salir
  • 20. Colas • Una cola es una estructura de datos que almacena elementos en una lista y permite acceder a los datos por uno de los dos extremos de la lista. Un elemento se inserta en la cola (parte final) de la lista y se suprime o elimina por la frente (parte inicial, cabeza) de la lista. • Los elementos se eliminan (se quitan) de la cola en el mismo orden en que se almacenan y, por consiguiente, una cola es una estructura de tipo FIFO (first-in-first-out, primero en entrar, Primero en salir o bien primero en llegar/primero en ser servido). o El servicio de atención a clientes es un ejemplo típico de cola o el cajero de un banco
  • 21. Listas • Una lista es una secuencia de elementos dispuesto en un cierto orden, en la que cada elemento tiene como mucho un predecesor y un sucesor. El número de elementos de la lista no suele estar fijado, ni suele estar limitado por anticipado. • Representaremos la estructura de datos de forma gráfica con cajas y flechas. Las cajas son los elementos y las flechas simbolizan el orden de los elementos. • La estructura de datos deberá permitirnos determinar cuál es el primer elemento y el último de la estructura, cuál es su predecesor y su sucesor (si existen de cualquier elemento dado). Cada uno de los elementos de información suele denominarse nodo. • La lista también puede representarse de forma simbólica escribiendo sus elementos separados por comas y encerrados entre corchetes. Por ejemplo: • ["rojo","verde","azul","amarillo"]
  • 22. • El uso de listas en Java es una forma útil de almacenar y manipular grandes volúmenes de datos, tal como haríamos en una matriz o arreglo, pero con una serie de ventajas que hacen de este tipo de variables las preferidas para el procesamiento de grandes cantidades de información. • Las listas en Java son variables que permiten almacenar grandes cantidades de datos. Son similares a los Array o a las Matrices.
  • 23. Arboles • Un árbol es una estructura jerárquica de datos que imita la forma de un árbol, un conjunto de nodos conectados. Un nodo es la unidad sobre la que se construye el árbol y puede tener ceros o mas 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. Solo puede haber un único nodo sin padres, que llamaremos raíz. Un nodo que no tiene hijos se conoce como hoja y a los demás nodos se les conoce como ramas.
  • 24. • Formalmente, un árbol se puede definir de manera recursiva, se utiliza la recursión para definir un árbol porque es una característica inherente a los mismos, como: • 1. Un solo nodo es, por si mismo, un árbol. Ese nodo es también la raíz de dicho árbol. • 2. Se supone que n es un nodo y que A1 , A2 ,..., Ak son arboles con raíces n1 , n2 ,…, nk respectivamente. Se puede construir un nuevo árbol haciendo que n se constituya en el padre de los nodos n1 , n2 ,…, nk . En dicho árbol, n es la raíz y A1 , A2 ,..., Ak son los subarboles (o arboles hijos) de la raíz. Los nodos n1 , n2 ,… ,nk reciben el nombre de hijos del nodo n y el nodo n recibe el nombre de padre de dichos nodo
  • 25. • Como ejemplo se puede considerar el índice de un libro. • T1 (Tema 1) • 1.1.-(Pregunta 1 del Tema 1) • 1.2.-(Pregunta 2 del Tema 1) • T2 (Tema 2) • 2.1.-(Pregunta 1 del Tema 2) • 2.1.1.-(Pregunta 1 de la pregunta 1 del Tema 2) • 2.1.2.-( Pregunta 2 de la pregunta 1 del Tema 2) • 2.2.-(Pregunta 2 del Tema 2) • 2.3.-(Pregunta 3 del Tema 2) • T3 (Tema 3)
  • 27. Grafos • Desde un punto de vista intuitivo un grafo es un conjunto de nodos unidos por un conjunto de arcos. Un ejemplo de grafo que podemos encontrar en la vida real es el de un plano de trenes. El plano de trenes está compuesto por varias estaciones (nodos) y los recorridos entre las estaciones (arcos) constituyen las líneas del trazado.
  • 28. • Un grafo G=(V,E) consiste en un conjunto V de nodos (vértices) y un conjunto E de aristas (arcos). Cada arista es un par (v,w), siendo v y w un par de nodos pertenecientes al conjunto V de nodos. Podemos distinguir entre grafos dirigidos y no dirigidos. En un grafo dirigido los pares (v,w) están ordenados, traduciéndose la arista en una flecha que va desde el nodo v al nodo w. • En el caso de un grafo no dirigido, los nodos están unidos mediante líneas sin indicación de dirección. • Por último se puede definir una función que asocie a cada arco un coste: coste(arco)
  • 29. Terminología de grafos • Hablaremos de dos vértices adyacentes cuando estén unidos por un arco. El número de vértices adyacentes de un nodo constituye el grado del mismo. En el ejemplo los vértices adyacentes al nodo C son el a, d y e , siendo éste por tanto un nodo de grado tres por tener tres vértices adyacentes.
  • 30. • Un camino entre dos vértices, es una secuencia de vértices tal que dos vértices consecutivos son adyacentes. En el siguiente ejemplo el camino entre el vértice a y el vértice e será la secuencia de vértices abecde. • Cuando este camino no tiene vértices repetidos se dice que es simple. Salvo en el caso de que el primer y último vértice del camino sean el mismo, en cuyo caso hablaremos de un ciclo
  • 31. • Cuando este camino no tiene vértices repetidos se dice que es simple. Salvo en el caso de que el primer y último vértice del camino sean el mismo, en cuyo caso hablaremos de un ciclo
  • 32. • La siguiente clasificación, aunque no es completa, presenta las principales características que nos podemos encontrar en los grafos: • Grafo conexo: Cuando entre cada dos nodos del grafo hay un camino. • Bosque: Es un grafo sin ciclos. • Arbol libre: es un bosque conexo. • La representación más extendida de los grafos es mediante lo que se llaman Matrices de adyacencia.
  • 33. • Como medida ante la estática los arreglos, tenemos estructuras dinámicas, esto significa que el tamaño de estructura puede ir creciendo o disminuyendo en tiempo de ejecución, lo que significa que el tamaño de la estructura es variante, y por lo tanto siempre ataremos utilizando la cantidad de memoria necesario para manejar o manipular los datos que la aplicación requiere, dentro de esta calificación tenemos las lineales y no lineales, cada una de estas estructuras tiene una lógica o algoritmo de funcionamiento partículas