Estructura de Datos C++

download Estructura de Datos C++

of 54

description

Estructura de datos c++

Transcript of Estructura de Datos C++

Universidad de Panam

Facultad de Informtica, Electrnica y Comunicacin

Licenciatura en Ingeniera en Informtica

PROGRAMACION II

ESTRUCTURAS DE DATOS

Integrantes: Diogo Lopes EC-4210444 Roque Solis 8-798-6Miguel Pinto 8-875-1805INDICE

INTRODUCIN........................................................................................................................3ARREGLO................................................................................................................................4ARREGLO UNIMENSIONALES......................................................................................5EJEMPLO.........................................................................................................6ARREGLO MULTIDIMENSIONALES..............................................................................7EJEMPLO.........................................................................................................8PILA........................................................................................................................................8OPERACIONES.............................................................................................................9EJEMPLO.....................................................................................................................9COLA.....................................................................................................................................12OPERACIONES...12EJEMPLO...12LISTA.15LISTAS SIMPLEMENTE ENLAZADA.....16CARACTERISTICA...16EJEMPLO.....17LISTAS DOBLEMENTE ENLAZADAS...................................22EJEMPLO.......................................................................................................25LISTAS CIRCULARES..................................................................................................28EJEMPLOS.....................................................................................................28ARBOLES...............................................................................................................................31CARACTERISTICAS Y FUNCIONAMENTO...................................................................32TIPOS DE ARBOLES...................................................................................................33ARBOL BINARIO........................................................................................................33EJEMPLO.......................................................................................................34GRAFOS................................................................................................................................39FORMAS DE REPRESENTACION................................................................................39GENERADORES.........................................................................................................40CONSTRUCTORES.....................................................................................................40SELECTORES..............................................................................................................41EJEMPLO...................................................................................................................41METDOS DE ORDENAMIENTO...........................................................................................44ORDENAMIENTO DE BURBUJA.................................................................................45EJEMPLO.......................................................................................................45ORDENAMIENTO SHELL............................................................................................46EJEMPLO.......................................................................................................46ORDENAMIENTO POR INSERCCIN..........................................................................47EJEMPLO.......................................................................................................47ORDENAMIENTO POR SELECCIN............................................................................48EJEMPLO.......................................................................................................49

1. INTRODUCIN

Una de las aplicaciones ms interesantes y potentes de la memoria dinmica y de los punteros son, sin duda, las estructuras dinmicas de datos. Las estructuras bsicas disponibles en C y C++ (structs yarrays) tienen una importante limitacin: no pueden cambiar de tamao durante la ejecucin. Losarraysestn compuestos por un determinado nmero de elementos, nmero que se decide en la fase de diseo, antes de que el programa ejecutable sea creado.En muchas ocasiones se necesitan estructuras que puedan cambiar de tamao durante la ejecucin del programa. Por supuesto, podemos creararraysdinmicos, pero una vez creados, tu tamao tambin ser fijo, y para hacer que crezcan o disminuyan de tamao, deberemos reconstruirlos desde el principio.Las estructuras dinmicas nos permiten crear estructuras de datos que se adapten a las necesidades reales a las que suelen enfrentarse nuestros programas. Pero no slo eso, como veremos, tambin nos permitirn crear estructuras de datos muy flexibles, ya sea en cuanto al orden, la estructura interna o las relaciones entre los elementos que las componen.Las estructuras de datos estn compuestas de otras pequeas estructuras a las que llamaremos nodos o elementos, que agrupan los datos con los que trabajar nuestro programa y adems uno o ms punteros autoreferenciales, es decir, punteros a objetos del mismo tipo nodo.

2. ARREGLO

Un arreglo o array es una coleccin de variables relacionadas a las que se hace referencia por medio de un nombre comn. Otra definicin vlida es que un arreglo es un conjunto de datos que se almacenan en memoria de manera contigua con el mismo nombre y para diferenciar los elementos de un arreglo se utiliza un ndice. En el lenguaje C++ un arreglo se le conoce como un tipo de dato compuesto. Los arreglos pueden tener una o varias dimensiones.

ndice de un arreglo: Todo arreglo est compuesto por un nmero de elementos. El ndice es un nmero correlativo que indica la posicin de un elemento del arreglo. Los ndices en C++ van desde la posicin 0 hasta la posicin tamao 1.

Elemento de un arreglo: Un elemento de un arreglo es un valor particular dentro de la estructura del arreglo. Para acceder a un elemento del arreglo es necesario indicar la posicin o ndice dentro del arreglo. Ejemplo: arreglo[0] //Primer elemento del arreglo arreglo[3] //Cuarto elemento del arreglo

2.1 ARREGLOS UNIDIMENSIONALES

Un arreglo de una dimensin es una lista de variables, todas de un mismo tipo a las que se hace referencia por medio de un nombre comn. Una variable individual del arreglo se llama elemento del arreglo. Para declarar un arreglo de una sola dimensin se usa el formato general: tipo_dato identificador[tamao];

Un elemento del arreglo se accede indexando el arreglo por medio de un nmero del elemento. En C++ todos los arreglos empiezan en 0, esto quiere decir que si se desea acceder al primer elemento del arreglo debe usar el ndice igual a 0. Para indexar un arreglo se especifica el ndice del elemento que interesa dentro de un corchete, ejemplo: valor = arreglo[1];

Los arreglos empiezan en 0, de manera que el ndice 1 se refiere al segundo elemento. Para asignar el valor a un elemento de un arreglo, ponga el elemento en el lado izquierdo de una sentencia de asignacin: arreglo[0] = 100;

C++ almacena arreglos de una sola dimensin en una localizacin de memoria contigua con el primer elemento en la posicin ms baja. De esta manera, arreglo[0] es adyacente a arreglo[1], que es adyacente a arreglo[2] y as sucesivamente. Puede usar el valor de un elemento de un arreglo donde quiera que usara una variable sencilla o una constante.

2.1.1 EJEMPLO

Ejemplo algoritmo: Arreglo de una dimensin

Declaracin int arreglo[3]; // forma un arreglo de una dimensin y de tres elementos Nombre del arreglo arreglo Nombre de los elementos arreglo[0] primer elemento arreglo[1] segundo elemento arreglo[2] tercer elemento

Ejemplo C++: el siguiente programa carga el arreglo sqrs con los cuadrados de los nmeros del 1 al 10 y luego los visualiza.

using namespace std; #includeint main() { int sqrs[10]; int i; for (i=1; i