27/01/15
ESTRUCTURA DE DATOS IESTRUCTURA DE DATOS I
MEMORIA DINAMICAMEMORIA DINAMICA
EXPOSITOR:EXPOSITOR:
Ing. Evans Balc...
27/01/15
Introducción
Una buena comprensión y un buen dominio de los punteros pondrán en tu
mano una herramienta de gran p...
27/01/15
Que es la Memoria Dinamica
Es la forma de implementación de una estructura de datos usando la memoria
en forma di...
27/01/15
Características de las Memorias Dinámicas
Así, durante la ejecución de un programa puede haber una posición de me...
27/01/15
•La programación dinámica es un método ascendente. Se resuelven primero los
subejemplares más pequeños y por tant...
27/01/15
Implementación de Memorias Dinámicas
Creación de Objetos: La memoria se reserva explícitamente mediante
el operad...
27/01/15
Datos Dinámicos:
Las estructuras de datos dinámicas son útiles especialmente para almacenar y
procesar conjunto d...
27/01/15
Tipos de datos Dinámicos:
Existen diferentes tipos de estructuras de datos dinámicas siendo las mas
notable y sig...
27/01/15
VENTAJAS:
Es posible disponer de un espacio de memoria arbitrario que dependa de información
dinámica (disponible...
27/01/15
Ejemplo funcional en Pascal
Hacer un programa que lea un numero n , y luego cargue los elementos
por teclado y de...
27/01/15
begin
ClrScr;
p:=nil;
i:=0;
write('cuantos nodos quiere? ');
readln(x);
writeln ('Introduzca los valores');
while...
27/01/15
begin
q^.ps:=p;
p:=q;
end
else
begin
r:=p;
while(r^.ps<>nil)do
r:=r^.ps;
q^.ps:=r^.ps;
r^.ps:=q;
end;
i:=i+1;
end...
27/01/15
Un Ejemplo En C++:
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop
#pragma argsused
str...
27/01/15
a=new nodo();
for(int i=0;i<n;i++){
if(i==0){
cin>>val;
a->dato=val;
a->link=NULL;
L=a;
}
else{
b=new nodo();
cin...
27/01/15
} // for
a=L;
cout<<"Los valores son n";
while(a!=NULL){
cout<<a->dato<<" ";
a=a->link;
}
getche();
}
Hacer un pr...
INF-220 Estructura de Datos I
Upcoming SlideShare
Loading in...5
×

Modelo Dinamico

3,571

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,571
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
45
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Modelo Dinamico

  1. 1. 27/01/15 ESTRUCTURA DE DATOS IESTRUCTURA DE DATOS I MEMORIA DINAMICAMEMORIA DINAMICA EXPOSITOR:EXPOSITOR: Ing. Evans Balcazar VeizagaIng. Evans Balcazar Veizaga ESTRUCTURA DE DATOS MODELO DINAMICO
  2. 2. 27/01/15 Introducción Una buena comprensión y un buen dominio de los punteros pondrán en tu mano una herramienta de gran potencia. Un conocimiento mediocre o incompleto te impedirá desarrollar programas eficaces. Ahora veremos como funciona los punteros. Un entero es un tipo especial de variable que contiene una dirección de memoria. A partir de esa dirección de memoria puede haber cualquier tipo de objeto : un char, int, float, un array, una estructura, una función u otro puntero ESTRUCTURA DE DATOS MODELO DINAMICO
  3. 3. 27/01/15 Que es la Memoria Dinamica Es la forma de implementación de una estructura de datos usando la memoria en forma dinámica del computador, esto consiste en que nuestro programa o estructura de dato solicite un espacio de memoria libre al Sistema Operativo, el Sistema Operativo verifica si existe el tamaño solicitado y lo asigna si lo hubiera ,caso contrario devuelve un puntero nulo. De la misma forma solicitada una ves ya no usada se debe devolver al Sistema Operativo. ESTRUCTURA DE DATOS MODELO DINAMICO
  4. 4. 27/01/15 Características de las Memorias Dinámicas Así, durante la ejecución de un programa puede haber una posición de memoria especifica asociada con una variable dinámica y posteriormente puede no existir ningún posición de memoria asociada con ella. •Una de las aplicaciones más interesantes y potentes de la memoria dinámica y los punteros son las estructuras dinámicas de datos. En muchas ocasiones se necesitan estructuras que puedan cambiar de tamaño durante la ejecución del programa. •Las estructuras dinámicas nos permiten crear estructuras de datos que se adapten a las necesidades reales a las que suelen enfrentarse nuestros programas. •Los punteros permiten la creación de estructuras de datos dinámicas, estructuras de datos que tienen capacidad de variar en tamaño y ocupar tanta memoria como utilicen realmente. •Las variables que se crean y se destruyen durante la ejecución se llaman variables dinámicas. ESTRUCTURA DE DATOS MODELO DINAMICO
  5. 5. 27/01/15 •La programación dinámica es un método ascendente. Se resuelven primero los subejemplares más pequeños y por tanto más simples. •Pascal proporciona los métodos para asignar y liberar espacio de memoria usando punteros y los procedimientos predefinidos new y dispose. •Las estructuras de datos están compuestas de otras pequeñas estructuras a las que llamaremos nodos o elementos, que agrupan los datos con los que trabajará nuestro programa y además uno o más punteros auto referenciales, es decir, punteros a objetos del mismo tipo nodo. •Frecuentemente para resolver un problema complejo se tiende a dividir este en subproblemas, más pequeños, resolver estos últimos (recurriendo posiblemente a nuevas subdivisiones) y combinar las soluciones obtenidas para calcular la solución del problema inicial. •Puede ocurrir que la división natural del problema conduzca a un gran número de subejemplares idénticos. ESTRUCTURA DE DATOS MODELO DINAMICO
  6. 6. 27/01/15 Implementación de Memorias Dinámicas Creación de Objetos: La memoria se reserva explícitamente mediante el operador new. Duración de Los Objetos: Los objetos necesitan ser destruidos explícitamente, con el operador delete. Indice de Arrays: El índice de un array puede ser un valor variable, de modo que la cantidad de memoria reservada por una línea de código puede variar en tiempo de ejecución (runtime). Ej: int* n = new int [variable no const] //correcto ESTRUCTURA DE DATOS MODELO DINAMICO
  7. 7. 27/01/15 Datos Dinámicos: Las estructuras de datos dinámicas son útiles especialmente para almacenar y procesar conjunto de datos cuyos tamaños cambian durante la ejecución del programa Variables Dinámicas: Cuando se ejecuta un programa el sistema operativo reserva una zona de memoria para el código o instrucciones del programa y otra para las variables que se usan durante la ejecución. A menudo estas zonas son las mismas zona, a esto es lo que se llama memoria local. También hay otras zonas de memoria, como la pila, que se usa entre otras cosas, para intercambiar datos entre funciones. El resto, la memoria que no se usa por ningún programa es lo que se conoce como “ heap “ o montón. Cuando nuestro programa use memoria dinámica, normalmente usará memoria del montón, y no se llama así porque sea de peor calidad, sino porque suele haber realmente un montón de memoria de este tipo. ESTRUCTURA DE DATOS MODELO DINAMICO
  8. 8. 27/01/15 Tipos de datos Dinámicos: Existen diferentes tipos de estructuras de datos dinámicas siendo las mas notable y significativa los punteros las listas enlazadas, listas Circulares, los arbole y los grafos Listas abiertas: cada elemento sólo dispone de un puntero, que apuntará al siguiente elemento de la lista o valdrá NULL si es el último elemento. Pilas: son un tipo especial de lista, conocidas como listas LIFO (Last In, First Out: el último en entrar es el primero en salir). Los elementos se "amontonan" o apilan, de modo que sólo el elemento que está encima de la pila puede ser leído, y sólo pueden añadirse elementos encima de la pila. Colas: otro tipo de listas, conocidas como listas FIFO (First In, First Out: El primero en entrar es el primero en salir). Los elementos se almacenan en fila, pero sólo pueden añadirse por un extremo y leerse por el otro. ESTRUCTURA DE DATOS MODELO DINAMICO
  9. 9. 27/01/15 VENTAJAS: Es posible disponer de un espacio de memoria arbitrario que dependa de información dinámica (disponible sólo en ejecución): Toda esa memoria que maneja es implementada por el programador cuando fuese necesario. DESVENTAJAS: Es difícil de implementar en el desarrollo de un programa o aplicación. Es difícil implementar estructuras de datos complejas como son los tipos recursivos (árboles, grafos, etc.).Por ello necesitamos una forma para solicitar y liberar memoria para nuevas variables que puedan ser necesarias durante la ejecución de nuestros programas: Heap. ESTRUCTURA DE DATOS MODELO DINAMICO
  10. 10. 27/01/15 Ejemplo funcional en Pascal Hacer un programa que lea un numero n , y luego cargue los elementos por teclado y después que los muestre. En Pascal : program prog01; uses crt; type pnodo1=^nodo1; nodo1=record dato:integer; ps:pnodo1; end; var r,p,q:pnodo1; i:integer; x:integer; ESTRUCTURA DE DATOS MODELO DINAMICO
  11. 11. 27/01/15 begin ClrScr; p:=nil; i:=0; write('cuantos nodos quiere? '); readln(x); writeln ('Introduzca los valores'); while(i<x)do begin new(q); readln(q^.dato); if(p=nil)then ESTRUCTURA DE DATOS MODELO DINAMICO
  12. 12. 27/01/15 begin q^.ps:=p; p:=q; end else begin r:=p; while(r^.ps<>nil)do r:=r^.ps; q^.ps:=r^.ps; r^.ps:=q; end; i:=i+1; end; writeln('los numeros son: '); r:=p; while(r<>nil)do begin writeln('->',r^.dato); r:= r^.ps; end; readln; end. ESTRUCTURA DE DATOS MODELO DINAMICO
  13. 13. 27/01/15 Un Ejemplo En C++: #include <vcl.h> #include <iostream.h> #include <conio.h> #pragma hdrstop #pragma argsused struct nodo{ int dato; nodo *link; }; void main(){ nodo *a,*b,*L; int n,val; cout<<"Introduzca la dimension "; cin>>n; cout<<"Introduzca los valores n";ESTRUCTURA DE DATOS MODELO DINAMICO
  14. 14. 27/01/15 a=new nodo(); for(int i=0;i<n;i++){ if(i==0){ cin>>val; a->dato=val; a->link=NULL; L=a; } else{ b=new nodo(); cin>>val; b->dato=val; a->link=b; b->link=NULL; a=b; } // else ESTRUCTURA DE DATOS MODELO DINAMICO
  15. 15. 27/01/15 } // for a=L; cout<<"Los valores son n"; while(a!=NULL){ cout<<a->dato<<" "; a=a->link; } getche(); } Hacer un programa que cree un boton dinámicamente void __fastcall TForm1::Button1Click(TObject *Sender) { TButton *a=new TButton(this); TButton *b=new TButton(this); a->Parent=this; b->Parent=this; b->Top=200; a->Top=200; a->Left=300; b->Left=200; b->Caption="Estructura"; a->Caption="II"; } ESTRUCTURA DE DATOS MODELO DINAMICO
  16. 16. INF-220 Estructura de Datos I
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×