Conceptos Básicos

Download Report

Transcript Conceptos Básicos

Estructura de Datos En C++
Dr. Romeo Sánchez Nigenda.
E-mail: [email protected]
http://yalma.fime.uanl.mx/~romeo/
Oficina: 1er. Piso del CIDET. Oficina con Dr. Oscar Chacón
Horas de Tutoría: 10am-11am Martes y Jueves,
3:30pm-4:30pm Miércoles, 2:00pm-4:00pm Viernes.
Website: http://yalma.fime.uanl.mx/~romeo/ED/2011/
Sesiones: 48
Objetivo General: Conocerá y manejará las
estructuras internas de información
Temario:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Conceptos Básicos
La Pila
40% Tareas
Colas
30% Examen Parcial
Recursión
30% Examen Final
Listas
10% Participación
Árboles
Ordenamiento
Búsqueda
Administración de Almacenamiento
Total a calificar: 110 puntos.
Material de apoyo:
Estructura de Datos con C y C++.
Yedidyah Langsam, Moshe J. Augenstein, Aaron M. Tenenbaum, Brooklyn College
Segunda Edición, Prentice-Hall.
Algorithms. Third Edition.
Parts 1-4, Fundamentals Data Structures Sorting Searching
Robert Sedgewick.
Estructura de Datos.
Román Martínez, Elda Quiroga.
Thomson Learning.
Cualquier libro de Estructura de Datos!
Software:
Compiladores GCC (GNU Compiler Collection)
IDEs (Integrated Development Environment):
http://www.eclipse.org/downloads/
http://kdevelop.org/
http://www.bloodshed.net/devcpp.html
1. Conceptos Básicos

Objetivo: Se conocerá el concepto de las estructuras
de datos, como se almacena la información, y las
estructuras de datos fundamentales utilizadas en la
computadora.

Temario:
◦
◦
◦
◦
◦
Definición del término Estructura de Datos.
Definición y especificación lógica de un TDA
Arreglos
Registros
Conjuntos
1.1 Definición de Estructura de Datos

Alguna idea?
Que es Información?

Es el conocimiento comunicado o recibido en
relación a algún hecho o circunstancia.

Es un conjunto organizado de datos, que
constituye un mensaje sobre cierto fenómeno
o ente.

Es un conjunto organizado de datos
procesados, que constituyen un mensaje que
cambia el estado de conocimiento del sujeto o
sistema que lo recibe
Cómo representamos información
en computación?



Unidad básica: bit (Binary Digit)
Con N bits se representan 2n-1 +enteros en
el sistema numérico binario
Ejemplos:
◦ A) 0100001, B) 0000101, C) 11000, D) 10110

Implementaciones:
◦
◦
◦
◦
Decimal: 4 bits por número
Números reales: 32 bits (24 mantisa, 8 exp)
Caracteres: 7 bits (ASCII), etc.
Tamaño del Byte: Cantidad de bits necesaria para
representar un carácter.
Memoria (almacenamiento)

Los bits se agrupan en bytes, y estos en palabras
(words)

Cada palabra se le asigna una dirección (localidad) en la
memoria

Podemos acceder a la dirección como a su contenido

Por ejemplo en C:
◦ int x, y;
 Reserva 2 localidades en memoria,
 Permite referencias a las localidades usando x, y
 El contenido de las localidades son enteros
1.2 Definición y especificación lógica
de un TDA

Datos: Son conceptos abstractos definidos por
un conjunto de propiedades lógicas.

Tipo de Datos Abstracto (TDA): Es un
conjunto de valores y un grupo de operaciones
(abstracción) sobre tales valores que pueden ser
accedidos únicamente a través de una interfaz.

Son modelos matemáticos compuestos por una
colección de operaciones definidas sobre un
conjunto de datos para el modelo
1.2 Definición y especificación lógica
de un TDA

Un TDA consta de 2 partes:
◦ Una definición de valor que establece el
conjunto de valores para el TDA, con una
cláusula de definición y otra de condición
◦ Una definición de operador que representa al
conjunto de operaciones primitivas que
definen el comportamiento del TDA
 Operador: encabezado, precondiciones, effectos
1.2 Definición y especificación lógica
de un TDA

-
-
Ejemplo:
Definición de valor:
- Número Racional: Conjunto de pares de elementos
(a,b) de tipo entero, con b<>0
Operadores:
Interfaz
- CrearRacional(a,b)
• Definición
- Sumar(a,b)
• Operaciones
Representación
- Restar(a,b)
Implementación
- Multiplicar(a,b)
- Dividir(a,b), …
Usuarios no pueden acceder los datos, excepto a través de las operaciones
Hechas públicas por la inferfaz
1.2 Definición y especificación lógica
de un TDA
Ejemplo (representación):
RACIONAL crearRacional(a,b)
Precondition b<>0
Postcondition RACIONAL.a = a, RACIONAL.b = b
Implementación:
void crearRacional(int a, int b) {
assert(b!=0);
this.a = a;
this.b = b;
}
1.1 Definición de Estructuras de Datos

Wikipedia: Es una forma de organizar un conjunto de datos
elementales con el objetivo de facilitar su manipulación (operación).

El estudio de las estructuras de datos identifica y desarrolla entidades
y operaciones matemáticas útiles y determina que clases de problemas
se solucionan usando dichas entidades y operaciones (Langsam, et. al).

Implica la representación para dichas entidades abstractas y la
implementación de las operaciones abstractas en las representaciones
concretas.

Una estructura de datos no es un objeto pasivo: Debemos de
considerar las operaciones que se ejecutaran sobre ella, y los
algoritmos a usar para dichas operaciones (Sedgewick).